如何使Bézier曲线对齐球面?

时间:2018-02-14 17:57:25

标签: 3d geometry bezier

我试图将球体表面上的任意2个点与四次Bézier曲线连接,使得曲线的每个点都非常接近曲面。我看到了这个solution,但它仅适用于三次曲线,并且仅在给定2个点具有相同的纬度或经度的情况下 - example A。 我有两个问题:

1)在其他情况下 - example B这个解决方案不起作用,我觉得控制点向量缺乏力量,我希望任何曲线都像实例A那样是球形的。那么什么是计算控制的正确方法用于立方贝塞尔曲线的点矢量来对齐球面。

2)如果问题1是可解的 - 我如何在四次Bézier曲线中随机化中间控制点,以便在每次生成它时获得独特的曲线,如example C

谢谢!

编辑:问题2由@Kpym solution解决。

1 个答案:

答案 0 :(得分:0)

  1. 将您的问题转换为两个点具有相同纬度或经度的坐标系。这应该是线性代数上的中等简单的练习。如果这是一个全新的话题,那么These lecture notes可能是一个好的开始。请注意,您查找的是 a 坐标系而不是 the 坐标系,因为将有多个解决方案。
  2. 使用在“标准”情况下(即,当两个点在同一纬度或经度上)已经为您使用的解决方案。
  3. 从第2步中获取贝塞尔曲线,但在原始坐标系中表示其控制点。这要归功于Bézier曲线的仿射不变性(因此通常为B-splines):曲线的仿射变换(坐标的更改为1)是通过变换控制点来完成的并再次构建曲线。 Here您可以阅读更多内容。