用人體骨架控制飛行方向,用手勢來操縱機體升降
Joint Left = joints[jointType0];
Joint Right = joints[jointType1];
double LRX = Right.Position.X-Left.Position.X;
double LRY = Right.Position.Y-Left.Position.Y;
Vector LR = new Vector(LRX, LRY);
Vector Perpendicular = new Vector(0,-1);
double VectorLength = System.Math.Sqrt(LRX*LRX+LRY*LRY);
double Degree = (System.Math.Acos(-LRY / VectorLength) * 180 / 3.14);
string text = "";
string text1 = "";
keybd_event(87, 0, 0, 0);
switch (handState)
{
case HandState.Closed:
text1 = "降";
keybd_event(33, 0, 0x2, 0);
keybd_event(34, 0, 0, 0);//PgDn
break;
case HandState.Open:
text1 = "平";
keybd_event(33, 0, 0x2, 0);
keybd_event(34, 0, 0x2, 0);
break;
case HandState.Lasso:
text1 = "升";
keybd_event(33, 0, 0, 0);//PgUp
keybd_event(34, 0, 0x2, 0);
break;
}
if (Degree > 120)
{
text = "左";
keybd_event(37, 0, 0, 0);//a
keybd_event(39, 0, 0x2, 0);
}
else if (Degree <= 120 && Degree >= 70)
{
text = "直";
keybd_event(37, 0, 0x2, 0);
keybd_event(39, 0, 0x2, 0);
}
else
{
text = "右";
keybd_event(39, 0, 0, 0);//d
keybd_event(37, 0, 0x2, 0);
}
沒有留言:
張貼留言