2

または、別の見方をすると、3D 空間の異なる部分に配置され、方向付けられた 2 つの同じサイズの三角形があるとします。四元数を三角形 A に適用すると三角形 B に位置するように、回転を記述する四元数をどのように計算しますか? 法線ベクトルには回転に関する情報が含まれていないため、A と B の法線を見つけて、これからクォータニオンを計算する方法を理解するのは困難です (または、両方の三角形の法線の標準ベース フレームを想定しているため、破棄されます)。貴重な情報)。各三角形 (a、b、c) から他の三角形 (a、b、c) へのベクトルを見つけ、これから何らかの方法で四元数を構築する必要があるようです。私をはるかに超えており、数学者はそれを馬鹿にしてくれませんか.

4

1 に答える 1

2

最初に法線ベクトルを方向付け、次に平面を方向付けます。

ソース=(s1、s2、s3)

ターゲット=(t1、t2、t3)

NormSource =(s1-s2)cross(s1-s3)

NormTarget =(t1-t2)cross(t1-t3)

Quat1 = getRotationTo(NormSource、NormTarget)

Quat2 = getRotationTo(Quat1 *(s1-s2)、(t1-t2));

QuatFinal = Quat2 * Quat1

于 2012-06-27T12:15:20.923 に答える