【问题标题】:Given these static points, which is Bezier Curve给定这些静态点,即贝塞尔曲线
【发布时间】:2017-11-21 05:14:14
【问题描述】:

我有一个问题是确定通过这些点的贝塞尔曲线:(1,1)、(2,-1)、(3,1)。我们怎样才能找到曲线?我不明白如何使用方程。又如何求曲线度数?

【问题讨论】:

  • 我投票结束这个问题,因为它是关于几何和Mathematics,而不是编程或软件开发。

标签: geometry computational-geometry


【解决方案1】:

通过这些点有无穷多的贝塞尔曲线。你需要更具体。

例如,可以定义曲线是二次曲线,第一个点是起点 (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

【讨论】:

    【解决方案2】:

    N次贝塞尔曲线是2D中N+1个控制点的加权和

    Sum(i=0,N) Wi(t).Ci
    

    如果你有 N+1 个点 Pj 的 t 值是已知的,你会得到一个由 2(N+1) 个未知数中的 2(N+1) 个方程组成的线性系统

    Sum(I=0,N) Wi(tj).Ci = Pj
    

    tj 可以在 [0,1] 中统一选择。另一种选择是使用控制点之间的累积线性距离(也减少到 [0,1])。


    如果您不想自己提供 tj,那就另当别论了。然后,您可以降低曲线的度数,并针对 t 的值交易控制点。通常,方程和未知数的数量不匹配,系统会出现过定或欠定。

    另一个困难是如果你强加点的顺序。那么未知数t被约束为增加,导致方程和不等式的困难系统。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 2011-03-10
      相关资源
      最近更新 更多