由于在项目中要用json来进行cs间数据的传输(不敢苟同),特地贴出构造json的代码。当然下载jsoncpp mater后用cmake编译,将jsoncpp中的inclue和生成的lib放到对应的
项目就可以使用了。
以下为c++构造json的代码,构造的是leapmotion的TrackingHand的数据:
std::string json; Json::Value JRoot; Json::FastWriter JWrite; std::string Value; JRoot["DeviceID"] = std::to_string(msg.device_id); JRoot["HandNums"] = std::to_string(msg.tracking_event->nHands); JRoot["FrameRate"] = std::to_string(msg.tracking_event->framerate); JRoot["FrameID"] = std::to_string(msg.tracking_event->tracking_frame_id); // fill LEAP_FRAME_HEADER Json::Value JInfo; JInfo["Reserved"] = ""; // msg.tracking_event->info.reserved JInfo["FrameID"] = std::to_string(msg.tracking_event->info.frame_id); JInfo["TimeStamp"] = std::to_string(msg.tracking_event->info.timestamp); JRoot["Info"] =JInfo; // fill LEAP_HAND Json::Value JHand; for (i = 0; i < msg.tracking_event->nHands; i++) { LEAP_HAND hand = msg.tracking_event->pHands[i]; JHand["HandID"] = std::to_string(hand.id); JHand["HandFlag"] = std::to_string(hand.flags); JHand["HandType"] = std::to_string(hand.type); JHand["HandCfd"] = std::to_string(hand.confidence); JHand["VisibleTime"] = std::to_string(hand.visible_time); JHand["PchDis"] = std::to_string(hand.pinch_distance); JHand["GrabAngle"] = std::to_string(hand.grab_angle); JHand["PchStrth"] = std::to_string(hand.pinch_strength); JHand["GrabStrth"] = std::to_string(hand.grab_strength); JHand["HandID"] = std::to_string(hand.id); ////////////////////////////////////////////////////////////////////////// // --- fill _LEAP_PALM --- Json::Value JPalm; Json::Value JVector; // postion JVector["HandX"] = std::to_string(hand.palm.position.x); JVector["HandY"] = std::to_string(hand.palm.position.y); JVector["HandZ"] = std::to_string(hand.palm.position.z); JPalm["HandPos"] = JVector; // stabilized_position JVector.clear(); JVector["StabX"] = std::to_string(hand.palm.stabilized_position.x); JVector["StabY"] = std::to_string(hand.palm.stabilized_position.y); JVector["StabZ"] = std::to_string(hand.palm.stabilized_position.z); JPalm["StabPos"] = JVector; // velocity JVector.clear(); JVector["VelocX"] = std::to_string(hand.palm.velocity.x); JVector["VelocY"] = std::to_string(hand.palm.velocity.y); JVector["VelocZ"] = std::to_string(hand.palm.velocity.z); JPalm["Velocity"] = JVector; // normal JVector.clear(); JVector["NormalX"] = std::to_string(hand.palm.normal.x); JVector["NormalY"] = std::to_string(hand.palm.normal.y); JVector["NormalZ"] = std::to_string(hand.palm.normal.z); JPalm["Normal"] = JVector; // direction JVector.clear(); JVector["DirX"] = std::to_string(hand.palm.direction.x); JVector["DirY"] = std::to_string(hand.palm.direction.y); JVector["DirZ"] = std::to_string(hand.palm.direction.z); JPalm["Direction"] = JVector; // orientation JVector.clear(); JVector["OrientX"] = std::to_string(hand.palm.orientation.x); JVector["OrientY"] = std::to_string(hand.palm.orientation.y); JVector["OrientZ"] = std::to_string(hand.palm.orientation.z); JVector["OrientZ"] = std::to_string(hand.palm.orientation.w); JPalm["Orient"] = JVector; // hand width JPalm["PalmWidth"] = std::to_string(hand.palm.width); JHand["Palm"] = JPalm; // --- fill _LEAP_PALM --- ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// // fill LEAP_DIGIT digits[5]; Json::Value JDigit,JDigitValue; std::string SDigitIndex = "Digit_"; for (int d = 0; d < 5; ++d) { JDigitValue.clear(); JDigitValue["DigitID"] = std::to_string(hand.digits[d].finger_id); JDigitValue["DigitEx"] = std::to_string(hand.digits[d].is_extended); // fill LEAP_BONE bones[4]; Json::Value JBone; Json::Value JBoneValue; std::string SBoneIndex = "Bone_"; for (int b = 0; b < 4; ++b) { // prev_joint JVector.clear(); JVector["JPrevX"] = std::to_string(hand.digits[d].bones[b].prev_joint.x); JVector["JPrevY"] = std::to_string(hand.digits[d].bones[b].prev_joint.y); JVector["JPrevZ"] = std::to_string(hand.digits[d].bones[b].prev_joint.z); JBoneValue["PrevJoint"] = JVector; // next_joint JVector.clear(); JVector["JNextX"] = std::to_string(hand.digits[d].bones[b].next_joint.x); JVector["JNextY"] = std::to_string(hand.digits[d].bones[b].next_joint.y); JVector["JNextZ"] = std::to_string(hand.digits[d].bones[b].next_joint.z); JBoneValue["NextJoint"] = JVector; // rotation JVector.clear(); JVector["JRotX"] = std::to_string(hand.digits[d].bones[b].rotation.x); JVector["JRotY"] = std::to_string(hand.digits[d].bones[b].rotation.y); JVector["JRotZ"] = std::to_string(hand.digits[d].bones[b].rotation.z); JVector["JRotW"] = std::to_string(hand.digits[d].bones[b].rotation.w); JBoneValue["RotJonit"] = JVector; // width JBoneValue["BoneW"] = std::to_string(hand.digits[d].bones[b].width); // append to array std::string sIndex = SBoneIndex + std::to_string(b); JBone[sIndex].append(JBoneValue); } JDigitValue["DigitBone"].append(JBone); std::string SDitIndex = SDigitIndex + std::to_string(d); JDigit[SDitIndex].append(JDigitValue); } JHand["Digits"] = JDigit; // fill LEAP_DIGIT digits[5]; ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// // fill LEAP_BONE arm Json::Value JArm; // prev_joint JVector.clear(); JVector["JPrevX"] = std::to_string(hand.arm.prev_joint.x); JVector["JPrevY"] = std::to_string(hand.arm.prev_joint.y); JVector["JPrevZ"] = std::to_string(hand.arm.prev_joint.z); JArm["PrevJoint"] = JVector; // next_joint JVector.clear(); JVector["JNextX"] = std::to_string(hand.arm.next_joint.x); JVector["JNextY"] = std::to_string(hand.arm.next_joint.y); JVector["JNextZ"] = std::to_string(hand.arm.next_joint.z); JArm["NextJoint"] = JVector; // rotation JVector.clear(); JVector["JRotX"] = std::to_string(hand.arm.rotation.x); JVector["JRotY"] = std::to_string(hand.arm.rotation.y); JVector["JRotZ"] = std::to_string(hand.arm.rotation.z); JVector["JRotW"] = std::to_string(hand.arm.rotation.w); JArm["RotJonit"] = JVector; // width JArm["BoneW"] = std::to_string(hand.arm.width); JHand["Arm"] = JArm; // fill LEAP_BONE arm ////////////////////////////////////////////////////////////////////////// JRoot["Hands"].append(JHand); } json = JWrite.write(JRoot);
最后想要查看构造的正确与否可以将代码中"json"变量的值拿出去验证(https://www.json.cn/)就行了。
再贴个解析出来的json串(最后有彩蛋):
{ "DeviceID":"1", "FrameID":"298913", "FrameRate":"115.346146", "HandNums":"2", "Hands":[ { "Arm":{ "BoneW":"61.879623", "NextJoint":{ "JNextX":"-219.647354", "JNextY":"196.839874", "JNextZ":"208.424332" }, "PrevJoint":{ "JPrevX":"-238.330124", "JPrevY":"54.185333", "JPrevZ":"438.286346" }, "RotJonit":{ "JRotW":"0.899677", "JRotX":"0.243542", "JRotY":"-0.129851", "JRotZ":"0.338242" } }, "Digits":{ "Digit_0":[ { "DigitBone":[ { "Bone_0":[ { "BoneW":"19.369673", "NextJoint":{ "JNextX":"-191.811798", "JNextY":"219.167618", "JNextZ":"190.857361" }, "PrevJoint":{ "JPrevX":"-191.811798", "JPrevY":"219.167618", "JPrevZ":"190.857361" }, "RotJonit":{ "JRotW":"0.896689", "JRotX":"0.392473", "JRotY":"-0.008454", "JRotZ":"-0.204554" } } ], "Bone_1":[ { "BoneW":"19.369673", "NextJoint":{ "JNextX":"-172.849060", "JNextY":"250.039627", "JNextZ":"161.486877" }, "PrevJoint":{ "JPrevX":"-191.811798", "JPrevY":"219.167618", "JPrevZ":"190.857361" }, "RotJonit":{ "JRotW":"0.868680", "JRotX":"0.414059", "JRotY":"-0.117013", "JRotZ":"-0.245476" } } ], "Bone_2":[ { "BoneW":"19.369673", "NextJoint":{ "JNextX":"-163.903809", "JNextY":"267.799438", "JNextZ":"136.595779" }, "PrevJoint":{ "JPrevX":"-172.849060", "JPrevY":"250.039627", "JPrevZ":"161.486877" }, "RotJonit":{ "JRotW":"0.911201", "JRotX":"0.323883", "JRotY":"-0.066744", "JRotZ":"-0.245678" } } ], "Bone_3":[ { "BoneW":"19.369673", "NextJoint":{ "JNextX":"-160.091751", "JNextY":"276.344421", "JNextZ":"122.617912" }, "PrevJoint":{ "JPrevX":"-163.903809", "JPrevY":"267.799438", "JPrevZ":"136.595779" }, "RotJonit":{ "JRotW":"0.924944", "JRotX":"0.286938", "JRotY":"-0.046536", "JRotZ":"-0.244906" } } ] } ], "DigitEx":"1", "DigitID":"0" } ], "Digit_1":[ { "DigitBone":[ { "Bone_0":[ { "BoneW":"18.501911", "NextJoint":{ "JNextX":"-208.199402", "JNextY":"264.242004", "JNextZ":"127.999382" }, "PrevJoint":{ "JPrevX":"-212.821701", "JPrevY":"229.425400", "JPrevZ":"193.010773" }, "RotJonit":{ "JRotW":"0.910385", "JRotX":"0.217099", "JRotY":"-0.113844", "JRotZ":"0.333327" } } ], "Bone_1":[ { "BoneW":"18.501911", "NextJoint":{ "JNextX":"-211.537537", "JNextY":"282.540070", "JNextZ":"93.282883" }, "PrevJoint":{ "JPrevX":"-208.199402", "JPrevY":"264.242004", "JPrevZ":"127.999382" }, "RotJonit":{ "JRotW":"0.904495", "JRotX":"0.239123", "JRotY":"-0.045722", "JRotZ":"0.350169" } } ], "Bone_2":[ { "BoneW":"18.501911", "NextJoint":{ "JNextX":"-206.084900", "JNextY":"284.752228", "JNextZ":"72.051674" }, "PrevJoint":{ "JPrevX":"-211.537537", "JPrevY":"282.540070", "JPrevZ":"93.282883" }, "RotJonit":{ "JRotW":"0.935405", "JRotX":"0.006631", "JRotY":"-0.134609", "JRotZ":"0.326885" } } ], "Bone_3":[ { "BoneW":"18.501911", "NextJoint":{ "JNextX":"-200.658875", "JNextY":"282.459167", "JNextZ":"61.624779" }, "PrevJoint":{ "JPrevX":"-206.084900", "JPrevY":"284.752228", "JPrevZ":"72.051674" }, "RotJonit":{ "JRotW":"0.920572", "JRotX":"-0.166026", "JRotY":"-0.192623", "JRotZ":"0.296444" } } ] } ], "DigitEx":"1", "DigitID":"1" } ], "Digit_2":[ { "DigitBone":[ { "Bone_0":[ { "BoneW":"18.171335", "NextJoint":{ "JNextX":"-226.011429", "JNextY":"251.622314", "JNextZ":"123.296440" }, "PrevJoint":{ "JPrevX":"-223.207489", "JPrevY":"224.329926", "JPrevZ":"187.775940" }, "RotJonit":{ "JRotW":"0.883107", "JRotX":"0.187973", "JRotY":"-0.067702", "JRotZ":"0.424505" } } ], "Bone_1":[ { "BoneW":"18.171335", "NextJoint":{ "JNextX":"-237.993973", "JNextY":"266.651337", "JNextZ":"83.287407" }, "PrevJoint":{ "JPrevX":"-226.011429", "JPrevY":"251.622314", "JPrevZ":"123.296440" }, "RotJonit":{ "JRotW":"0.868323", "JRotX":"0.217599", "JRotY":"0.044305", "JRotZ":"0.443511" } } ], "Bone_2":[ { "BoneW":"18.171335", "NextJoint":{ "JNextX":"-235.846161", "JNextY":"267.563629", "JNextZ":"57.283432" }, "PrevJoint":{ "JPrevX":"-237.993973", "JPrevY":"266.651337", "JPrevZ":"83.287407" }, "RotJonit":{ "JRotW":"0.894101", "JRotX":"-0.002714", "JRotY":"-0.044652", "JRotZ":"0.445626" } } ], "Bone_3":[ { "BoneW":"18.171335", "NextJoint":{ "JNextX":"-230.543823", "JNextY":"264.094727", "JNextZ":"45.663673" }, "PrevJoint":{ "JPrevX":"-235.846161", "JPrevY":"267.563629", "JPrevZ":"57.283432" }, "RotJonit":{ "JRotW":"0.871295", "JRotX":"-0.212068", "JRotY":"-0.126692", "JRotZ":"0.424054" } } ] } ], "DigitEx":"1", "DigitID":"2" } ], "Digit_3":[ { "DigitBone":[ { "Bone_0":[ { "BoneW":"17.291178", "NextJoint":{ "JNextX":"-239.961395", "JNextY":"233.978210", "JNextZ":"123.302673" }, "PrevJoint":{ "JPrevX":"-230.537903", "JPrevY":"215.799530", "JPrevZ":"182.791992" }, "RotJonit":{ "JRotW":"0.866890", "JRotX":"0.164960", "JRotY":"-0.003123", "JRotZ":"0.470405" } } ], "Bone_1":[ { "BoneW":"17.291178", "NextJoint":{ "JNextX":"-253.849365", "JNextY":"242.561646", "JNextZ":"85.362213" }, "PrevJoint":{ "JPrevX":"-239.961395", "JPrevY":"233.978210", "JPrevZ":"123.302673" }, "RotJonit":{ "JRotW":"0.852703", "JRotX":"0.176807", "JRotY":"0.097248", "JRotZ":"0.481849" } } ], "Bone_2":[ { "BoneW":"17.291178", "NextJoint":{ "JNextX":"-252.675171", "JNextY":"240.414200", "JNextZ":"59.940456" }, "PrevJoint":{ "JPrevX":"-253.849365", "JPrevY":"242.561646", "JPrevZ":"85.362213" }, "RotJonit":{ "JRotW":"0.867176", "JRotX":"-0.047963", "JRotY":"0.000907", "JRotZ":"0.495686" } } ], "Bone_3":[ { "BoneW":"17.291178", "NextJoint":{ "JNextX":"-247.781403", "JNextY":"236.147919", "JNextZ":"48.393864" }, "PrevJoint":{ "JPrevX":"-252.675171", "JPrevY":"240.414200", "JPrevZ":"59.940456" }, "RotJonit":{ "JRotW":"0.837786", "JRotX":"-0.239632", "JRotY":"-0.082136", "JRotZ":"0.483679" } } ] } ], "DigitEx":"1", "DigitID":"3" } ], "Digit_4":[ { "DigitBone":[ { "Bone_0":[ { "BoneW":"15.359376", "NextJoint":{ "JNextX":"-249.532898", "JNextY":"214.969131", "JNextZ":"124.431633" }, "PrevJoint":{ "JPrevX":"-233.472839", "JPrevY":"202.407516", "JPrevZ":"178.985336" }, "RotJonit":{ "JRotW":"0.817480", "JRotX":"0.169040", "JRotY":"0.055389", "JRotZ":"0.547799" } } ], "Bone_1":[ { "BoneW":"15.359376", "NextJoint":{ "JNextX":"-262.373535", "JNextY":"215.837723", "JNextZ":"94.423073" }, "PrevJoint":{ "JPrevX":"-249.532898", "JPrevY":"214.969131", "JPrevZ":"124.431633" }, "RotJonit":{ "JRotW":"0.802548", "JRotX":"0.126218", "JRotY":"0.156676", "JRotZ":"0.561639" } } ], "Bone_2":[ { "BoneW":"15.359376", "NextJoint":{ "JNextX":"-260.209167", "JNextY":"211.480118", "JNextZ":"77.153168" }, "PrevJoint":{ "JPrevX":"-262.373535", "JPrevY":"215.837723", "JPrevZ":"94.423073" }, "RotJonit":{ "JRotW":"0.797222", "JRotX":"-0.134799", "JRotY":"0.023760", "JRotZ":"0.587964" } } ], "Bone_3":[ { "BoneW":"15.359376", "NextJoint":{ "JNextX":"-253.844742", "JNextY":"206.502640", "JNextZ":"68.012405" }, "PrevJoint":{ "JPrevX":"-260.209167", "JPrevY":"211.480118", "JPrevZ":"77.153168" }, "RotJonit":{ "JRotW":"0.740522", "JRotX":"-0.343066", "JRotY":"-0.087623", "JRotZ":"0.571188" } } ] } ], "DigitEx":"1", "DigitID":"4" } ] }, "GrabAngle":"0.848613", "GrabStrth":"0.114133", "HandCfd":"1.000000", "HandFlag":"0", "HandID":"28", "HandType":"0", "Palm":{ "Direction":{ "DirX":"-0.161235", "DirY":"0.465706", "DirZ":"-0.870127" }, "HandPos":{ "HandX":"-220.915405", "HandY":"235.239944", "HandZ":"142.128265" }, "Normal":{ "NormalX":"0.658360", "NormalY":"-0.606065", "NormalZ":"-0.446371" }, "Orient":{ "OrientX":"0.254479", "OrientY":"-0.013294", "OrientZ":"0.896022" }, "PalmWidth":"91.388863", "StabPos":{ "StabX":"0.000000", "StabY":"0.000000", "StabZ":"0.000000" }, "Velocity":{ "VelocX":"-25.860853", "VelocY":"-85.594162", "VelocZ":"-41.230572" } }, "PchDis":"59.544933", "PchStrth":"0.000000", "VisibleTime":"20049724" }, { "Arm":{ "BoneW":"61.879623", "NextJoint":{ "JNextX":"189.378983", "JNextY":"168.299164", "JNextZ":"143.473724" }, "PrevJoint":{ "JPrevX":"301.308105", "JPrevY":"-20.027906", "JPrevZ":"303.288269" }, "RotJonit":{ "JRotW":"0.833554", "JRotX":"0.282167", "JRotY":"0.354558", "JRotZ":"-0.316003" } }, "Digits":{ "Digit_0":[ { "DigitBone":[ { "Bone_0":[ { "BoneW":"19.369673", "NextJoint":{ "JNextX":"156.145264", "JNextY":"192.888245", "JNextZ":"132.860107" }, "PrevJoint":{ "JPrevX":"156.145264", "JPrevY":"192.888245", "JPrevZ":"132.860107" }, "RotJonit":{ "JRotW":"0.897244", "JRotX":"0.398338", "JRotY":"0.091845", "JRotZ":"0.166868" } } ], "Bone_1":[ { "BoneW":"19.369673", "NextJoint":{ "JNextX":"129.954102", "JNextY":"221.473648", "JNextZ":"106.716789" }, "PrevJoint":{ "JPrevX":"156.145264", "JPrevY":"192.888245", "JPrevZ":"132.860107" }, "RotJonit":{ "JRotW":"0.856117", "JRotX":"0.413238", "JRotY":"0.222917", "JRotZ":"0.215885" } } ], "Bone_2":[ { "BoneW":"19.369673", "NextJoint":{ "JNextX":"113.636452", "JNextY":"239.761459", "JNextZ":"86.080246" }, "PrevJoint":{ "JPrevX":"129.954102", "JPrevY":"221.473648", "JPrevZ":"106.716789" }, "RotJonit":{ "JRotW":"0.879721", "JRotX":"0.373373", "JRotY":"0.196345", "JRotZ":"0.219391" } } ], "Bone_3":[ { "BoneW":"19.369673", "NextJoint":{ "JNextX":"104.619759", "JNextY":"249.744659", "JNextZ":"75.787392" }, "PrevJoint":{ "JPrevX":"113.636452", "JPrevY":"239.761459", "JPrevZ":"86.080246" }, "RotJonit":{ "JRotW":"0.869678", "JRotX":"0.390992", "JRotY":"0.208069", "JRotZ":"0.217930" } } ] } ], "DigitEx":"1", "DigitID":"0" } ], "Digit_1":[ { "DigitBone":[ { "Bone_0":[ { "BoneW":"18.501911", "NextJoint":{ "JNextX":"161.394485", "JNextY":"236.498230", "JNextZ":"66.701637" }, "PrevJoint":{ "JPrevX":"177.686829", "JPrevY":"203.253281", "JPrevZ":"130.649857" }, "RotJonit":{ "JRotW":"0.898494", "JRotX":"0.174843", "JRotY":"0.191615", "JRotZ":"-0.354151" } } ], "Bone_1":[ { "BoneW":"18.501911", "NextJoint":{ "JNextX":"163.654404", "JNextY":"259.054260", "JNextZ":"33.372478" }, "PrevJoint":{ "JPrevX":"161.394485", "JPrevY":"236.498230", "JPrevZ":"66.701637" }, "RotJonit":{ "JRotW":"0.874154", "JRotX":"0.279624", "JRotY":"0.091526", "JRotZ":"-0.386379" } } ], "Bone_2":[ { "BoneW":"18.501911", "NextJoint":{ "JNextX":"160.439575", "JNextY":"267.029999", "JNextZ":"12.371840" }, "PrevJoint":{ "JPrevX":"163.654404", "JPrevY":"259.054260", "JPrevZ":"33.372478" }, "RotJonit":{ "JRotW":"0.907693", "JRotX":"0.138276", "JRotY":"0.134792", "JRotZ":"-0.372565" } } ], "Bone_3":[ { "BoneW":"18.501911", "NextJoint":{ "JNextX":"156.408600", "JNextY":"268.428253", "JNextZ":"0.795839" }, "PrevJoint":{ "JPrevX":"160.439575", "JPrevY":"267.029999", "JPrevZ":"12.371840" }, "RotJonit":{ "JRotW":"0.920086", "JRotX":"-0.005221", "JRotY":"0.175568", "JRotZ":"-0.350130" } } ] } ], "DigitEx":"1", "DigitID":"1" } ], "Digit_2":[ { "DigitBone":[ { "Bone_0":[ { "BoneW":"18.171335", "NextJoint":{ "JNextX":"177.755798", "JNextY":"223.586121", "JNextZ":"59.159706" }, "PrevJoint":{ "JPrevX":"186.649643", "JPrevY":"197.884903", "JPrevZ":"123.740578" }, "RotJonit":{ "JRotW":"0.875047", "JRotX":"0.137844", "JRotY":"0.142102", "JRotZ":"-0.441699" } } ], "Bone_1":[ { "BoneW":"18.171335", "NextJoint":{ "JNextX":"186.932861", "JNextY":"242.927231", "JNextZ":"19.145315" }, "PrevJoint":{ "JPrevX":"177.755798", "JPrevY":"223.586121", "JPrevZ":"59.159706" }, "RotJonit":{ "JRotW":"0.850460", "JRotX":"0.242748", "JRotY":"0.014254", "JRotZ":"-0.466464" } } ], "Bone_2":[ { "BoneW":"18.171335", "NextJoint":{ "JNextX":"185.945526", "JNextY":"248.598892", "JNextZ":"-7.003502" }, "PrevJoint":{ "JPrevX":"186.932861", "JPrevY":"242.927231", "JPrevZ":"19.145315" }, "RotJonit":{ "JRotW":"0.878893", "JRotX":"0.085520", "JRotY":"0.066186", "JRotZ":"-0.464600" } } ], "Bone_3":[ { "BoneW":"18.171335", "NextJoint":{ "JNextX":"182.209991", "JNextY":"248.207809", "JNextZ":"-20.095793" }, "PrevJoint":{ "JPrevX":"185.945526", "JPrevY":"248.598892", "JPrevZ":"-7.003502" }, "RotJonit":{ "JRotW":"0.882418", "JRotX":"-0.075762", "JRotY":"0.116819", "JRotZ":"-0.449391" } } ] } ], "DigitEx":"1", "DigitID":"2" } ], "Digit_3":[ { "DigitBone":[ { "Bone_0":[ { "BoneW":"17.291178", "NextJoint":{ "JNextX":"191.502716", "JNextY":"205.823639", "JNextZ":"57.092476" }, "PrevJoint":{ "JPrevX":"192.985794", "JPrevY":"189.142853", "JPrevZ":"117.737320" }, "RotJonit":{ "JRotW":"0.864419", "JRotX":"0.110883", "JRotY":"0.075784", "JRotZ":"-0.484501" } } ], "Bone_1":[ { "BoneW":"17.291178", "NextJoint":{ "JNextX":"203.150909", "JNextY":"216.979675", "JNextZ":"18.297985" }, "PrevJoint":{ "JPrevX":"191.502716", "JPrevY":"205.823639", "JPrevZ":"57.092476" }, "RotJonit":{ "JRotW":"0.845310", "JRotX":"0.188360", "JRotY":"-0.053217", "JRotZ":"-0.497131" } } ], "Bone_2":[ { "BoneW":"17.291178", "NextJoint":{ "JNextX":"203.160828", "JNextY":"218.311630", "JNextZ":"-7.723382" }, "PrevJoint":{ "JPrevX":"203.150909", "JPrevY":"216.979675", "JPrevZ":"18.297985" }, "RotJonit":{ "JRotW":"0.863544", "JRotX":"0.022183", "JRotY":"0.012717", "JRotZ":"-0.503624" } } ], "Bone_3":[ { "BoneW":"17.291178", "NextJoint":{ "JNextX":"199.697830", "JNextY":"216.237900", "JNextZ":"-20.616634" }, "PrevJoint":{ "JPrevX":"203.160828", "JPrevY":"218.311630", "JPrevZ":"-7.723382" }, "RotJonit":{ "JRotW":"0.855568", "JRotX":"-0.132137", "JRotY":"0.073325", "JRotZ":"-0.495143" } } ] } ], "DigitEx":"1", "DigitID":"3" } ], "Digit_4":[ { "DigitBone":[ { "Bone_0":[ { "BoneW":"15.359376", "NextJoint":{ "JNextX":"201.678619", "JNextY":"186.625427", "JNextZ":"56.839321" }, "PrevJoint":{ "JPrevX":"195.743317", "JPrevY":"175.470901", "JPrevZ":"113.691544" }, "RotJonit":{ "JRotW":"0.820483", "JRotX":"0.108459", "JRotY":"0.012074", "JRotZ":"-0.561158" } } ], "Bone_1":[ { "BoneW":"15.359376", "NextJoint":{ "JNextX":"214.293304", "JNextY":"187.610291", "JNextZ":"25.980309" }, "PrevJoint":{ "JPrevX":"201.678619", "JPrevY":"186.625427", "JPrevZ":"56.839321" }, "RotJonit":{ "JRotW":"0.799717", "JRotX":"0.123930", "JRotY":"-0.148391", "JRotZ":"-0.568395" } } ], "Bone_2":[ { "BoneW":"15.359376", "NextJoint":{ "JNextX":"215.531937", "JNextY":"185.306000", "JNextZ":"7.639727" }, "PrevJoint":{ "JPrevX":"214.293304", "JPrevY":"187.610291", "JPrevZ":"25.980309" }, "RotJonit":{ "JRotW":"0.805634", "JRotX":"-0.030594", "JRotY":"-0.063830", "JRotZ":"-0.588169" } } ], "Bone_3":[ { "BoneW":"15.359376", "NextJoint":{ "JNextX":"212.748779", "JNextY":"182.259903", "JNextZ":"-4.178726" }, "PrevJoint":{ "JPrevX":"215.531937", "JPrevY":"185.306000", "JPrevZ":"7.639727" }, "RotJonit":{ "JRotW":"0.789672", "JRotX":"-0.166350", "JRotY":"0.016420", "JRotZ":"-0.590319" } } ] } ], "DigitEx":"1", "DigitID":"4" } ] }, "GrabAngle":"0.396186", "GrabStrth":"0.000000", "HandCfd":"1.000000", "HandFlag":"0", "HandID":"30", "HandType":"1", "Palm":{ "Direction":{ "DirX":"0.001364", "DirY":"0.443626", "DirZ":"-0.896211" }, "HandPos":{ "HandX":"176.389099", "HandY":"207.582916", "HandZ":"79.192780" }, "Normal":{ "NormalX":"-0.728334", "NormalY":"-0.613662", "NormalZ":"-0.304873" }, "Orient":{ "OrientX":"0.209372", "OrientY":"0.089765", "OrientZ":"0.893741" }, "PalmWidth":"91.388863", "StabPos":{ "StabX":"0.000000", "StabY":"0.000000", "StabZ":"0.000000" }, "Velocity":{ "VelocX":"1.715878", "VelocY":"42.214321", "VelocZ":"-3.315435" } }, "PchDis":"75.180557", "PchStrth":"0.000000", "VisibleTime":"4899710" } ], "Info":{ "FrameID":"298930", "Reserved":"", "TimeStamp":"1151030258906" } }
如果你有幸看到了这里,我也想由衷的说一句:fuck!!!