我在 R3 中有两个椭圆体,分别用它们的中心点 (P)、它们的轴长 (a,b,c) 和它们的旋转矢量 (R) 来描述。我希望沿着给定的中心线在这两个椭圆体之间插入一个管状结构。这是通过创建一个以沿中心线的每个点为中心的椭圆体来完成的。它的轴长度在两个端点之间线性插值,并使用球面线性插值或SLERP作为四元数获得旋转。
我以前在这里问过一个关于这个问题的类似问题。从那以后,我进一步隔离了这个问题,并认为它值得一个新的帖子。这里的不同之处在于,在进行 SLERP 之前,我首先通过描述其中一个的旋转矩阵的逆来旋转两个参考椭球,这样其中一个现在是轴对齐的(即没有旋转)。以前这似乎可以解决问题,但我遇到了一个此修复不起作用的示例。
可在此处获得重现此问题的源代码。相关函数是ellipsoidSLERP
和它调用的函数。这是输出的屏幕截图:
您看到的是沿中心线(青色)两端(绿色)的两个参考椭球体之间的椭球体体积(蓝色)的插值。
问题陈述
左边的插值工作正常,产生了一个光滑的管状结构。右侧的插值无法正常工作,并导致扭曲。
是什么导致了这种行为,我该如何纠正它?
如果有什么我可以做的澄清,请告诉我。