我有这个问题是确定通过这些点的贝塞尔曲线:(1,1),(2,-1),(3,1)。我们怎样才能找到曲线?我不知道怎么用这个等式。我们怎样才能找到曲线度?
答案 0 :(得分:0)
通过这些点存在无限的贝塞尔曲线。你需要更加具体。
例如,可以定义该曲线是二次曲线,第一个点是开始一个(t = 0),第三个点是结束一个(t = 1),第二个点是精确中间(t = 0.5)。 然后构建方程(用t值和点坐标代替)并求解系数
p[0].x * (1-t)^2 + p[1].x * 2 * t * (1-t) + p[2].x * t^2 = X(t)
example for the first point:
p[0].x * (1-0)^2 + p[1].x * 2 * 0 * (1-0) + p[2].x * (0)^2 = 1
p[0].x = 2
答案 1 :(得分:0)
度数N的贝塞尔曲线是2D
中N + 1个控制点的加权和Sum(i=0,N) Wi(t).Ci
如果你有已知t值的N + 1个点Pj,你得到2(N + 1)个未知数的2(N + 1)个方程的线性系统
Sum(I=0,N) Wi(tj).Ci = Pj
可以在[0,1]中统一选择tj。另一种选择是使用控制点之间的累积线性距离(也减少到[0,1])。
如果你不想自己提供tj,这是一个非常不同的问题。然后,您可以减小曲线的程度和交易控制点的t值。通常,方程和未知数的数量不匹配,系统将会过度或不确定。
另一个困难是如果你强加点数的顺序。然后未知数t被约束为增加,导致一个困难的方程组和不等式。