本文整理汇总了C#中Microsoft.Kinect.Skeleton.GetFirstTrackedSkeleton方法的典型用法代码示例。如果您正苦于以下问题:C# Skeleton.GetFirstTrackedSkeleton方法的具体用法?C# Skeleton.GetFirstTrackedSkeleton怎么用?C# Skeleton.GetFirstTrackedSkeleton使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.Kinect.Skeleton
的用法示例。
在下文中一共展示了Skeleton.GetFirstTrackedSkeleton方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ControlCar
// Parse the skeleton for use to control the car
private void ControlCar(Skeleton[] skeletons)
{
// Get the closest tracked user
Skeleton trackedSkeleton = skeletons.GetFirstTrackedSkeleton();
// don't do anything if there is no one to track
if (trackedSkeleton == null)
{
DisableControl();
return;
}
// lost track of the previous user
// stop controlling the car and start tracking
// new user
if (trackedSkeleton.TrackingId != _trackedId)
{
DisableControl();
_trackedId = trackedSkeleton.TrackingId;
}
// get a vector representing the hands for easier coding
Vector3D leftHand = GetJointVector(JointType.HandLeft, trackedSkeleton);
Vector3D rightHand = GetJointVector(JointType.HandRight, trackedSkeleton);
// Only continue if the hands are not crossed
if (leftHand.X >= rightHand.X) return;
// find the mindpoint between the two hands
Vector3D handsMidpoint = new Vector3D((rightHand.X + leftHand.X)/2.0,
(rightHand.Y + leftHand.Y)/2.0,
(rightHand.Z + leftHand.Z)/2.0);
// get the vertical position of the spine
double spineYPosition = trackedSkeleton.Joints[JointType.Spine].Position.Y;
// check if it is okay to control the car
EnableDisableControl(handsMidpoint, spineYPosition, leftHand, rightHand);
// if we are not controlling then return otherwise continue to processing.
if (!_isControlling)
return;
// calculate the direction for the car
CalculateDirection(leftHand, handsMidpoint);
// calculate the velocity of the car
CalculateVelocity(handsMidpoint.Z, trackedSkeleton.Position.Z);
}