Krasjet / quaternion

A brief introduction to the quaternions and its applications in 3D geometry.
https://krasjet.github.io/quaternion/
1.72k stars 272 forks source link

P42 nlerp 的两个输入向量必须是单位向量,否则差值结果不会经过初始和最终向量 #36

Open sunyc11 opened 1 year ago

sunyc11 commented 1 year ago

您好,关于p42中「nlerp 的两个输入向量必须是单位向量,否则差值结果不会经过初始和最终向量」这段话我有点疑问: 由nlerp公式

q_t=\frac{(1-t)q_{0} + tq_{1}}{||(1-t)q_0+tq_1||}

两边同乘v得到

v_t=\frac{(1-t)v_{0} + tv_{1}}{||(1-t)q_0+tq_1||}

而不是文档里的

v_t=\frac{(1-t)v_{0} + tv_{1}}{||(1-t)v_0+tv_1||}

也就是说,v0,v1是不是单位向量都可以 nlerp 差值,都会经过初始和最终向量(t=0或1时,分母是单位四元数的模,都是1)

cam1681 commented 5 months ago

个人理解:这一部分实际上,v和q的插值方式是一致的,因为前文有说,q的4D空间的夹角,恰好就是旋转空间夹角的一半,因此v上的插值方法,就可以直接用在q的4D空间的插值。这里v的公式不是由q的公式来的,反而q的公式是从v的公式过来的。另外这两个公式上的分母,目的都是对q和v做归一化,没有相互推导的含义。