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


C# KinectManager.IsJointTracked方法代码示例

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


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

示例1: 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

示例2: 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

示例3: 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

示例4: 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


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