私のKINECT v2の右のハンドティップ位置を使用してキャンバスに線を描こうとしています。私は、このコード行から右手の先端位置を取得しています。Kinect v2を使用して線を描くc#wpf
CameraSpacePoint handtipPosition = handtip.Position;
ColorSpacePoint handtipPoint = _sensor.CoordinateMapper.MapCameraPointToColorSpace(handtipPosition);
、これは線を描画するための私のコードスニペットで、私は私は、座標を割り当てるためPreviousPointを使用する場合、X1及びY1はそう
ColorSpacePoint PreviousPoint;
line.X1 = PreviousPoint.X; // ERROR 'Use of possibly Unassigned field X'
line.Y1 = PreviousPoint.Y; // ERROR 'Use of possibly Unassigned field Y'
line.X2 = handtipPoint.X;
line.Y2 = handtipPoint.Y;
PreviousPoint = handtipPoint;
canvas.Children.Add(line);
として私のラインに座標なく供給する別のポイントを定義しています私のX1とY1のパラメータ私はエラーが発生する可能性があります未使用のフィールドXを使用して(私は推測している原因は、PreviousPointは最初に値がありません)と私のキャンバス私は描く上でXとYのpreviousPoint値を0に修正X2とY2だけが私の手の位置に続くように、固定点(0,0)からの線。
私はこの状況を修正する助けてください、何か提案とお手伝いをよろしくお願いします。
あなたが投稿した少しのコードから、エラーは正しいです:ローカル変数 'PreviousPoint'を宣言し、それを初期化する前にそれを使用しようとしました。良い[mcve]がなければ、修正する必要があることは本当に明確ではありません。以前のポイントが必要な場合は、変数を最後に長くなるような場所(インスタンスフィールドなど)に置き、_once_で初期化してから2つの異なるポイントを受け取るまで線を描画しないでください。私はこの質問がKinectとは何の関係がないのか分かりません。あなたがKinect APIからポイントを得ているのは実際の質問に接しているようです。 –
私は前回の値を最初に初期化したいのは、最初に値がないためです。しかし、イベントハンドラが起動すると、kinectセンサはジョイント位置に給電し、最終的には先行点を埋めるでしょう。 それまでは、インスタンス化したいだけです。ただ1回だけ、nullオブジェクトエラーが表示されません。 – Sda