当前位置: 首页>>代码示例>>C#>>正文


C# KinectManager.GetJointPosition方法代码示例

本文整理汇总了C#中KinectManager.GetJointPosition方法的典型用法代码示例。如果您正苦于以下问题:C# KinectManager.GetJointPosition方法的具体用法?C# KinectManager.GetJointPosition怎么用?C# KinectManager.GetJointPosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在KinectManager的用法示例。


在下文中一共展示了KinectManager.GetJointPosition方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Start

    // Use this for initialization
    void Start()
    {
        // キネクトマネージャーの取得
        manager = KinectManager.Instance;

        // リズムカウントの配列を初期化
        rhythmTimes = new Queue<float>(rhythmCalcNum);

        float initRhythm = 60.0f / initBPM;
        for (int i = 0; i < rhythmTimes.Count; i++) {
            rhythmTimes.Enqueue(initRhythm);
        }

        checkObjectPosY = new Queue<float>(checkObjectPosYNum);
        // チェックオブジェクトの高さ検出に関する初期化

        // 初期位置で配列を埋める
        long userId = manager.GetUserIdByIndex (0);
        Vector3 pos = manager.GetJointPosition (userId, (int)checkBodyType);
    }
开发者ID:AkihiroSato0309,项目名称:SoundRiderMiku_kinect,代码行数:21,代码来源:RhythmCheck.cs

示例2: Update

    // Update is called once per frame
    void Update()
    {
        km = KinectManager.Instance;
        string trackedJointsString = "Tracked Joints:";
        if (km != null) {
            if (km.IsUserDetected()) {
                uint userId = km.GetPlayer1ID();
                /*trackedJointsString += "\nchecking joints";
                if(km.IsJointTracked(userId, (int)rightHand))
                    trackedJointsString += "\nRight hand";
                if(km.IsJointTracked(userId, (int)rightWrist))
                    trackedJointsString += "\nRight wrist";
                if(km.IsJointTracked(userId, (int)centreHip))
                    trackedJointsString += "\nCentre Hip";
                if(km.IsJointTracked(userId, (int)leftShoulder))
                    trackedJointsString += "\nLeft shoulder";
                if(km.IsJointTracked(userId, (int)centreShoulder))
                    trackedJointsString += "\nCentre shoulder";
                if(km.IsJointTracked(userId, (int)rightShoulder))
                    trackedJointsString += "\nRight shoulder";
                trackedJointsString += "\ndone checking joints";*/

                if (km.IsJointTracked(userId, (int)rightHand) && km.IsJointTracked(userId, (int)rightShoulder))
                    wristVector = km.GetJointPosition(userId, (int)rightHand) - km.GetJointPosition(userId, (int)rightShoulder);
                if (km.IsJointTracked(userId, (int)rightShoulder) && km.IsJointTracked(userId, (int)leftShoulder))
                    shouldersVector = km.GetJointPosition(userId, (int)rightShoulder) - km.GetJointPosition(userId, (int)leftShoulder);
                if (km.IsJointTracked(userId, (int)centreShoulder) && km.IsJointTracked(userId, (int)centreHip))
                    backVector = km.GetJointPosition(userId, (int)centreShoulder) - km.GetJointPosition(userId, (int)centreHip);

                //GramSchmidt Orthonormal Space
                Vector3 e2 = backVector.normalized;
                Vector3 e1 = (shouldersVector - Vector3.Dot (shouldersVector,e2) * e2).normalized;

                wristVectorInPlane = new Vector2(Vector3.Dot(e1, wristVector), Vector3.Dot(e2, wristVector));

            }
        }
        trackedJointsText.text = trackedJointsString;
        CheckPointingTopRight();
    }
开发者ID:christuart,项目名称:EDSAC-Project-Summer-2015,代码行数:41,代码来源:GestureMechanicsController.cs

示例3: GetUserBoneLength

    private bool GetUserBoneLength(KinectManager manager, KinectInterop.JointType baseJoint, KinectInterop.JointType endJoint, float scaleFactor, ref float length)
    {
        length = 0f;

        if(manager && manager.IsJointTracked(currentUserId, (int)baseJoint) &&
           manager.IsJointTracked(currentUserId, (int)endJoint))
        {
            Vector3 vPos1 = manager.GetJointPosition(currentUserId, (int)baseJoint);
            Vector3 vPos2 = manager.GetJointPosition(currentUserId, (int)endJoint);

            length = (vPos2 - vPos1).magnitude * scaleFactor;

            return true;
        }

        return false;
    }
开发者ID:lukasIO,项目名称:UnityMyo,代码行数:17,代码来源:AvatarScaler.cs

示例4: GetUserBodyHeight

    private bool GetUserBodyHeight(KinectManager manager, float scaleFactor, ref float height)
    {
        height = 0f;

        if(manager && manager.IsJointTracked(currentUserId, (int)KinectInterop.JointType.HipLeft) &&
           manager.IsJointTracked(currentUserId, (int)KinectInterop.JointType.HipRight) &&
           manager.IsJointTracked(currentUserId, (int)KinectInterop.JointType.ShoulderLeft) &&
           manager.IsJointTracked(currentUserId, (int)KinectInterop.JointType.ShoulderRight))
        {
            //Vector3 posHipCenter = manager.GetJointPosition(currentUserId, (int)KinectInterop.JointType.SpineBase);
            Vector3 posHipLeft = manager.GetJointPosition(currentUserId, (int)KinectInterop.JointType.HipLeft);
            Vector3 posHipRight = manager.GetJointPosition(currentUserId, (int)KinectInterop.JointType.HipRight);
            Vector3 posHipCenter = (posHipLeft + posHipRight) / 2;

            Vector3 posShoulderLeft = manager.GetJointPosition(currentUserId, (int)KinectInterop.JointType.ShoulderLeft);
            Vector3 posShoulderRight = manager.GetJointPosition(currentUserId, (int)KinectInterop.JointType.ShoulderRight);
            Vector3 posShoulderCenter = (posShoulderLeft + posShoulderRight) / 2;

            height = (posShoulderCenter.y - posHipCenter.y) * scaleFactor;

            return true;
        }

        return false;
    }
开发者ID:lukasIO,项目名称:UnityMyo,代码行数:25,代码来源:AvatarScaler.cs

示例5: FixedUpdate

    // Update is called once per frame
    void FixedUpdate()
    {
        // show pause screen and return if isPaused
        if (isPaused)
        {
            overlay.waitingForPlayer.SetActive(false);
            overlay.pauseScreen.SetActive(true);
            begin = false;
            Cursor.visible = true;
            return;
        }
        else
            Cursor.visible = false;
        overlay.pauseScreen.SetActive(false);

        // setup kinect & return if no user found
        manager = KinectManager.Instance;
        long userID = manager ? manager.GetUserIdByIndex (0) : 0;
        if (userID == 0)
        {
            overlay.waitingForPlayer.SetActive(true);
            begin = false;
            return;
        }
        begin = true;
        overlay.waitingForPlayer.SetActive(false);

        // set joints
        bottomSpine = manager.GetJointPosition (userID, 0);
        bottomHead = manager.GetJointPosition (userID, 2);
        leftShoulder = manager.GetJointPosition (userID, 4);
        leftHand = manager.GetJointPosition (userID, 6);
        rightShoulder = manager.GetJointPosition (userID, 8);
        rightHand = manager.GetJointPosition (userID, 10);
        leftHip = manager.GetJointPosition (userID, 12);
        leftKnee = manager.GetJointPosition (userID, 13);
        leftFoot = manager.GetJointPosition (userID, 15);
        rightHip = manager.GetJointPosition (userID, 16);
        rightKnee = manager.GetJointPosition (userID, 17);
        rightFoot = manager.GetJointPosition (userID, 19);

        xBottom = bottomSpine.x;

        // Horizontal movement
        HorizontalMovement();

        // Forward movement
        MoveForward();

        // Calculate leg angles
        CalcAngles();

        // Calculate lowest foot
        LowestFoot();
    }
开发者ID:daanlevendig,项目名称:Kinect_Run_v2,代码行数:56,代码来源:Movement.cs

示例6: Update

 // Update is called once per frame
 void Update()
 {
     kinect = KinectManager.Instance;
     if (!kinectInterpreter.useGamepad) {
         isDraggingLeft = false;
         isDraggingRight = false;
         isDraggingUp = false;
         isDraggingDown = false;
         if (canDrag && HandIsGrabbing (kinect)) {
             if (!wasDragging) {
                 dragStartPos = (Vector2)(kinect.GetJointPosition (userId, (int)handJoint));
                 controller.OnHandClosed (userId);
             }
             wasDragging = true;
             Vector2 dragVector = (Vector2)(kinect.GetJointPosition (userId, (int)handJoint)) - dragStartPos;
             float dragTan = Mathf.Abs (dragVector.x / dragVector.y);
             if (dragTan < tan15 || dragTan > tan75) {
                 int steps = Mathf.FloorToInt (dragVector.magnitude / dragStepDistance);
                 if (steps > 0) {
                     steps = Mathf.Min (steps, maxDragSteps);
                     if (Time.time - lastDragTime > dragBaseRepeatTime / steps) {
                         lastDragTime = Time.time;
                         if (dragVector.x > dragVector.y && dragVector.x > -(dragVector.y)) {
                             isDraggingRight = true;
                         } else if (dragVector.x < dragVector.y && dragVector.x < -(dragVector.y)) {
                             isDraggingLeft = true;
                         } else if (dragVector.y > dragVector.x && dragVector.y > -(dragVector.x)) {
                             isDraggingUp = true;
                         } else if (dragVector.y < dragVector.x && dragVector.y < -(dragVector.x)) {
                             isDraggingDown = true;
                         }
                     }
                 }
             }
         } else if (wasDragging) {
             wasDragging = false;
             controller.OnHandOpened (userId);
         }
     } else {
         wasDragging = HandIsGrabbing (kinect);
         isDraggingLeft = Input.GetAxis("Horizontal" + kinectInterpreter.gamepad) > 0f;
         isDraggingRight = Input.GetAxis("Horizontal" + kinectInterpreter.gamepad) < 0f;
         isDraggingUp = Input.GetAxis("Vertical" + kinectInterpreter.gamepad) > 0f;
         isDraggingDown = Input.GetAxis("Vertical" + kinectInterpreter.gamepad) < 0f;
     }
 }
开发者ID:christuart,项目名称:Meet-EDSAC,代码行数:47,代码来源:KinectDragController.cs

示例7: GetJointPosition

    // gets the joint position in space
    private Vector3 GetJointPosition(KinectManager manager, int joint)
    {
        Vector3 vPosJoint = Vector3.zero;

        if(manager.IsJointTracked(currentUserId, joint))
        {
            if(foregroundCamera)
            {
                // get the background rectangle (use the portrait background, if available)
                Rect backgroundRect = foregroundCamera.pixelRect;
                PortraitBackground portraitBack = PortraitBackground.Instance;

                if(portraitBack && portraitBack.enabled)
                {
                    backgroundRect = portraitBack.GetBackgroundRect();
                }

                // get the color overlay position
                vPosJoint = manager.GetJointPosColorOverlay(currentUserId, joint, foregroundCamera, backgroundRect);
            }
            else
            //if(vPosJoint == Vector3.zero)
            {
                vPosJoint = manager.GetJointPosition(currentUserId, joint);
            }
        }

        return vPosJoint;
    }
开发者ID:drfuzzyness,项目名称:WearHax-OlivMatt,代码行数:30,代码来源:AvatarScaler.cs

示例8: Update

    // Update is called once per frame
    void Update()
    {
        initText.text = noUser + straightKnees + inRange + groundedFeet;

        manager = KinectManager.Instance;
        long userID = manager ? manager.GetUserIdByIndex (0) : 0;
        if (userID == 0)
        {
            noUser = "No User Detected\n";
            return;
        }
        else
            noUser = "\n";

        // Joints
        bottomSpine = manager.GetJointPosition (userID, 0);
        bottomHead = manager.GetJointPosition (userID, 2);
        leftHip = manager.GetJointPosition (userID, 12);
        leftKnee = manager.GetJointPosition (userID, 13);
        leftFoot = manager.GetJointPosition (userID, 15);
        rightHip = manager.GetJointPosition (userID, 16);
        rightKnee = manager.GetJointPosition (userID, 17);
        rightFoot = manager.GetJointPosition (userID, 19);

        LegAngles();
        LowestFoot();

        // check distance from the sensor
        if (bottomSpine.z > 2.0f)
        {
            inRange = "Too far!\n";
            distanceBool = false;
        }
        else if (bottomSpine.z < 1.25f)
        {
            inRange = "Too close!\n";
            distanceBool = false;
        }
        else
        {
            distanceBool = true;
            inRange = "\n";
        }

        // check for straight legs
        if ((leftLegAngle < 165.0f) || (rightLegAngle < 165.0f) || (leftUp < 155.0f) || (rightUp < 155.0f))
        {
            straightKnees = "Stand up straight!\n";
            angleBool = false;
        }
        else
        {
            angleBool = true;
            straightKnees = "\n";
        }

        // check for feet on ground
        if (Mathf.Abs (leftFoot.y - rightFoot.y) > 0.05f)
        {
            groundedFeet = "Keep both feet grounded!\n";
            groundedBool = false;
        }
        else
        {
            groundedBool = true;
            groundedFeet = "\n";
        }

        if (distanceBool && angleBool && groundedBool && !coroutineStarted)
        {
            coroutineStarted = true;
            StartCoroutine(InitCount());
        }
    }
开发者ID:daanlevendig,项目名称:Kinect_Run_v2,代码行数:75,代码来源:BodyInit.cs


注:本文中的KinectManager.GetJointPosition方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。