【发布时间】:2015-05-02 03:23:00
【问题描述】:
我需要显示贝塞尔曲线。用户通过点击显示区域选择任意点。
我实现了用这些点制作贝塞尔曲线的代码,但是对于高阶曲线,一旦阶数等于控制点的数量-1,它就不起作用了。
如何拆分这些控制点以制作代表我想要的整条曲线的三次贝塞尔曲线序列?
【问题讨论】:
-
你似乎有两件事发生。你说“我实现了一个代码来用这些点制作贝塞尔曲线,但是对于更高的订单它不起作用”。如果您向我们展示您的代码并告诉我们输出有什么问题,也许我们可以帮助您修复它。这可能是与使用三次贝塞尔线段逼近高阶贝塞尔曲线完全不同的问题。你真正想解决哪个问题? (请注意,一般情况下,您无法找到包含完全与原始高阶曲线相同的点的一组三次线段。)
-
@robmayoff 我做的代码使用了所有的点,所以顺序会太高,行不通。因此我想分成三次曲线。不需要是完全相同的曲线,但足够好的近似值。
-
你能解释一下为什么你认为你甚至需要分割控制点吗?你不想用三次曲线或其他东西来近似高阶曲线吗?如果您的用户放置
n点,您可以很容易地绘制相应的n 阶曲线(对要绘制的曲线上的每个点使用n+(n-1)+(n-2)+...+1 = n(n+1)/2线性插值)