private void SendRotate() { // 追跡しているBodyのみループする foreach (var body in bodies.Where(b => b.IsTracked)) { // Bodyから取得した全関節でループする。 foreach (var joint in body.Joints) { // 追跡可能な状態か? if (joint.Value.TrackingState == TrackingState.Tracked) { // デバックのため右肘のピッチ軸を出力してみる if (joint.Key == JointType.ElbowRight) { //関節の向きを取得する(Vector4型)。関節の指定にはJoyntType(enum)を使用する。 var orientation = body.JointOrientations[joint.Key].Orientation; //関節のそれぞれの軸に対応する角度を取得する //var pitchRotate = CalcRotate.Pitch(orientation); //var yowRotate = CalcRotate.Yaw(orientation); var rollRotate = CalcRotate.Roll(orientation); // TODO:↑の角度の値から必要なものをソケット通信で送信する Debug.WriteLine(((int)rollRotate).ToString()); } } } } }
private void SendRotate() { // 追跡しているBodyのみループする foreach (var body in bodies.Where(b => b.IsTracked)) { // Bodyから取得した全関節でループする。 foreach (var joint in body.Joints) { // 追跡可能な状態か? if (joint.Value.TrackingState == TrackingState.Tracked) { //関節の向きを取得する(Vector4型)。関節の指定にはJoyntType(enum)を使用する。 var orientation = body.JointOrientations[joint.Key].Orientation; //関節のそれぞれの軸に対応する角度を取得する var pitchRotate = CalcRotate.Pitch(orientation); var yowRotate = CalcRotate.Yaw(orientation); var rollRotate = CalcRotate.Roll(orientation); // TODO:↑の角度の値から必要なものをソケット通信で送信する } } } }