【发布时间】:2018-08-11 19:29:44
【问题描述】:
我想做这样的曲线:
一条 3D 曲线,空间中的 3 个点定义了曲线通过的终点和中间点,还有空间中的 2 个点,曲线在不接触的情况下向弯曲。
类似于在 Inkscape 中使用二维点定义曲线:
此外,我想计算沿该曲线沿空间的 x 维度等距分布的点。 (沿定义样条的 t 变量不等间距,沿曲线长度不等间距。曲线不会沿 x 维度回溯。)
我试过阅读the documentation,但我很困惑。它要么显示通过所有点的曲线:
或者没有:
【问题讨论】:
-
我的猜测是你在使用 Bezier 样条曲线,而 Scipy 的插值程序没有任何控制(或弯曲)点的概念——相反,它们是插值样条曲线。你看过stackoverflow.com/questions/12643079/…看它是否能解决你的问题?
-
@AhmedFasih 是的,我已经看到了这个问题。根据我阅读的一些文章,SciPy 有 B 样条,而 Beziers 是 B 样条的一种。
-
我对此可能是错的,但我相信 Scipy 实现的 B 样条曲线是样条曲线的插值理论方法,而贝塞尔曲线(你的目标是,控制点导致向它们弯曲的曲线)是图形中使用的一种更具体的样条线。我试图解释它的方式是:在插值中,没有理由让控制点引导曲线,所以如果
scipy.interpolate.BSpline会在这里做你需要的事情,我会感到惊讶。 -
@user6655984 stackoverflow.com/q/12643079/125507 正在尝试找到最接近一组数据的控制点。我正在尝试从控制点实现 曲线本身。