2

或者以另一种方式看待它,假设我们有 2 个相同大小的三角形位于 3D 空间的不同部分并定位。您如何计算描述旋转的四元数,以便将四元数应用于三角形 A 会使其位于三角形 B?很难看出如何找到 A 和 B 的法线并从中计算四元数是如何工作的,因为法线向量不包含有关旋转的信息(或者更确切地说,它假定两个三角形法线的标准基本框架,因此丢弃有价值的信息)。看来您需要找到从每个三角形(a,b,c)到其他三角形(a,b,c)的向量,并以某种方式从中构造一个四元数。远远超出我的范围,任何数学家都可以把它哑口无言。

4

1 回答 1

2

首先定向法向量,然后定向平面。

来源=(s1,s2,s3)

目标=(t1,t2,t3)

标准源 = (s1 - s2)cross(s1 - s3)

标准目标 = (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 回答