简述 球型线性插值简而言之就是在由起点p1和终点p2两个基向量所构成的平面中,从一个端点到另外一个端点的移动过程.bash
球型线性插值公式以下:spa
q(t) = (1 - t)q1 + tq2
其中t的取值范围为[0,1],从公式就能够看出 (1 - t)q1与tq2为一个此消彼长的过程.
复制代码
下图是q(t)的q1份量,即a(t)的计算示意图 code
sinθ(1-t)为q(t)到q2的垂线长度,sinθ为q1到q2的垂线长度 在这里就能看出,sinθ(1-t)会随着a(t)的增大而逼近sinθ,同时也会随着a(t)的减少而逼近0. 也就意味着a(t)与q1彻底重合时:cdn
sinθ(1-t) = sinθ
sinθ(1-t)/sinθ = 1
复制代码
a(t)与原点o重合时则:blog
sinθ(1-t) = 0
sinθ(1-t)/sinθ = 0
复制代码
能够发现这里a(t)到q2的垂线长度的取值范围就是[0,sinθ],其sinθ(1-t)/sinθ的结果也与t的取值范围相重合. 所以便可经过该式算出a(t): (sinθ(1-t)/sinθ)*q1. q2份量b(t)的计算方式也与a(t)相似. it
b(t) = (sinθt/sinθ)*q2io
最后的q(t)即为:class
q(t) = a(t) + b(t)lazyload