Ich versuche, Linien auf Leinwand mit meinen KINECT v2 rechten Handtipp Positionen zu zeichnen. Ich bekomme von dieser Codezeile meine rechten Tipppositionen.Zeichnen von Linien mit Kinect v2 C# wpf
CameraSpacePoint handtipPosition = handtip.Position;
ColorSpacePoint handtipPoint = _sensor.CoordinateMapper.MapCameraPointToColorSpace(handtipPosition);
Und dies ist mein Code-Schnipsel für die Linien zeichnen, habe ich einen weiteren Punkt definiert X1 und Y1 zu füttern, um meine Linie Koordinaten als so
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);
aber wenn ich PreviousPoint verwenden für Koordinaten zuweisen Meine X1 und Y1 Parameter Ich bekomme den Fehler 'Verwendung von möglicherweise nicht zugewiesenen Feld X' (Was ich rate ist Ursache PreviousPoint hat keinen Wert am Anfang) und wenn ich previousPoint Werte für X und Y auf 0, auf meiner Leinwand ich zeichne Linien von einem festen Punkt (0,0), da nur X2 und Y2 meinen Handpositionen folgen.
Bitte helfen Sie mir, diese Situation zu korrigieren, schätzen Sie alle Vorschläge und Hilfe.
Von dem kleinen Code, den Sie gepostet haben, ist der Fehler richtig: Sie haben eine lokale Variable 'PreviousPoint' deklariert und dann versucht, sie zu verwenden, bevor Sie sie initialisiert haben. Ohne eine gute [mcve] ist es nicht wirklich klar, was Sie reparieren müssen. Wenn Sie einen vorherigen Punkt möchten, müssen Sie die Variable an einen längeren Ort (z. B. ein Instanzfeld) setzen, sie initialisieren _once_ und dann keine Linie zeichnen, bis Sie zwei verschiedene Punkte erhalten haben. Ich sehe nicht, wie diese Frage überhaupt etwas mit Kinect zu tun hat; dass Sie Punkte von der Kinect API erhalten, scheint tangential zur eigentlichen Frage zu sein. –
Ich möchte den vorherigen Punktwert nur einmal initialisieren, weil er am Anfang keinen Wert hat. Nach dem Zünden des Event-Handlers füttert der Kinect-Sensor Gelenkpositionen, die eventuell den vorherigen Punkt füllen. Bis dahin möchte ich es nur instanziieren, nur einmal, damit ich keinen Null-Objektfehler bekomme. – Sda