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