2014年6月29日 星期日

第十七周進度

用人體骨架控制飛行方向,用手勢來操縱機體升降

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);
}

沒有留言:

張貼留言