【问题标题】:Help understanding 2D Inverse Kinematics帮助理解 2D 逆运动学
【发布时间】:2011-06-02 22:03:13
【问题描述】:

我找到了一个解释 2D 逆运动学的网站:

Starting from the joint nearest the
end point:
1. Calculate a force vector from the end of the bone to the target.
2. Calculate the dot product of the force vector and the Right angle
vector.
3. Multiply it by a small value, like 0.01.
4. Add it to the angle of the joint.

http://freespace.virgin.net/hugo.elias/models/m_ik.htm

因此,在我的应用程序中设计骨骼的方式是根据关节和角度来设计的。每个“骨骼”都是一个关节、一个角度和一个长度。骨骼的终点是它的起点和角度的单位向量,乘以它的长度。

所以我认为对于第 1 步,我只需生成一个方向指向目标的单位向量,然后将其乘以终点与目标点之间的距离。

第 2 步是我不确定的地方。我知道如何产生一个点积,但我不确定如何获得他们所说的这个直角向量。

谢谢

【问题讨论】:

    标签: algorithm vector inverse-kinematics


    【解决方案1】:

    “直角向量”是与骨骼长度成直角的向量。

    如果你沿着它的长度推动骨头,它不应该移动。在这种情况下,这个“直角向量”和你的力向量之间的角度是 90 度,所以点积为零。因此,骨骼的角度没有变化。

    【讨论】:

      【解决方案2】:

      Right-Vector 是 2D-inv-kinematics-sections 图片中的 R-Vector。它是正交于骨骼的归一化向量。

      一个小提示:向量 A 和归一化向量 B 的点积只是向量 A 到向量 B 的直线的投影长度,也就是 cos(角度)。更多细节在这里:http://en.wikipedia.org/wiki/Dot_product#Geometric_interpretation

      因此,如果目标向量与右向量几乎相同,则 cos 将接近 1,并且与目标向量与骨骼几乎相同的情况相比,该算法将更正您的骨骼角度-vector(cos接近0)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-19
        • 2020-02-22
        • 1970-01-01
        • 2011-09-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多