目的是求出center,求出center让p1围绕center旋转到p2,插值这个旋转过程。
注意这里简化了一点,实际中是三维坐标,这里假设旋转轴是z轴正半轴,由圆点指向屏幕外。实际中的旋转轴即为相机旋转的旋转轴。如果用的是四元数表示法,四元数xyz构成的向量即是旋转轴。
假设旋转轴为axis, p1p2为p1指向p2的向量。
dir = cross(axis, p1p2).normalize() * length;
length = 0.5 * p1p2.length() / Math.tan(θ/2);
center = (p1 + p2)/2 + dir;
求出center,下一步做向量的球形插值。
网友评论