1

2Dで逆運動学を説明するWebサイトを見つけました。

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は私が確信が持てないところです。内積の作成方法は知っていますが、彼らが話すこの直角ベクトルを取得する方法がわかりません。

ありがとう

4

2 に答える 2

1

「直角ベクトル」は、骨の長さに対して直角であるベクトルです。

ボーンをその長さに沿って押している場合、ボーンは動かないはずです。この場合、この「直角ベクトル」と力ベクトルの間の角度は90度になるため、内積はゼロになります。したがって、骨の角度に変化はありません。

于 2011-06-02T22:18:21.480 に答える
0

Right-Vectorは、2D-inv-kinematics-sectionsの写真のR-Vectorです。これは、骨に直交する正規化されたベクトルです。

小さなヒント:ベクトルAと正規化されたベクトルBの内積は、ちょうどcos(角度)であるベクトルBの直線に対するベクトルAの投影された長さです。詳細はこちら: http: //en.wikipedia.org/wiki/Dot_product#Geometric_interpretation

その結果、ターゲットベクトルが右ベクトルとほぼ同じである場合、cosは1に近くなり、アルゴリズムは、ターゲットベクトルが骨ベクトルとほぼ同じである場合よりも骨角度を修正します( cosは0に近い)

于 2011-06-02T22:24:41.100 に答える