C# XNA-计算骨骼的相对旋转

C# XNA-计算骨骼的相对旋转,c#,3d,xna,rotation,C#,3d,Xna,Rotation,我有一个剥皮的机械臂模型,可以在XNA中进行模拟,我能够成功地旋转它的各个骨骼。现在,我想获得单个骨骼的旋转角度,以便于保存和显示 / / / x__________y/ 手臂实际上是在三维空间中。但是我想得到2D旋转(我的意思是骨骼只在一个轴上旋转) 因此,在上图中,骨骼“x”相对于地面的旋转为0,骨骼“y”相对于骨骼“x”的旋转约为100度 如何计算这些值 我希望问题是清楚的 谢谢。我做了一些研究,发现了一

我有一个剥皮的机械臂模型,可以在XNA中进行模拟,我能够成功地旋转它的各个骨骼。现在,我想获得单个骨骼的旋转角度,以便于保存和显示

               /
              /
             /
x__________y/
手臂实际上是在三维空间中。但是我想得到2D旋转(我的意思是骨骼只在一个轴上旋转)

因此,在上图中,骨骼“x”相对于地面的旋转为0,骨骼“y”相对于骨骼“x”的旋转约为100度

如何计算这些值

我希望问题是清楚的


谢谢。

我做了一些研究,发现了一个非常好的链接,我决定将其作为答案发布:


页面底部有一个C#sample

旋转单个骨骼时,是否指定了这些值?这是您想要的。这不是一个简单的话题,但它是一个非常有益的项目:@NicoSchertler Good point。我在旋转的时候确实会加减度数。但最好也能计算出来。让我们说是为了学习一些数学。@Jon谢谢你的链接。在开始项目时,我研究了反向运动学,并考虑为了简单起见排除它。考虑到两块骨头的坐标,应该有一种更简单的方法来计算它们之间的角度,不是吗?你知道你可以用方向向量的点积来计算角度,对吗?