【问题标题】:Bezier curve is straight贝塞尔曲线是直的
【发布时间】:2014-02-01 16:41:38
【问题描述】:

我想画一条贝塞尔曲线,我用了 4 个控制点,但我的线还是直的。

我有一个处理点的类。我使用 pyglet 来绘制输出。

def Bezier(P0,P1,P2,P3, t):
    t2 = t*t
    t3 = t2 * t
    mt = 1-t
    mt2 = mt * mt
    mt3 = mt2 * mt

    P0.mulP(mt)

    P1.mulP(3)
    P1.mulP(mt2)
    P1.mulP(t)

    P2.mulP(mt)
    P2.mulP(3)
    P2.mulP(t2)

    P3.mulP(t3)

    P0.addP(P1)
    P0.addP(P2)
    P0.addP(P3)

    return P0

编辑: 我还在玩这个问题。我有一个计算贝塞尔曲线坐标的函数,它显示了同样的东西......

def Bezier3deg(P0,P1,P2,t):
    ReP = points.point()

    t1 = (1 - t) * (1 - t)
    P0.mulP(t1)

    t2 = 2 * (1-t) * t
    P1.mulP(t2)

    t3 = t*t
    P2.mulP(t3)

    ReP.addP(P0)
    ReP.addP(P1)
    ReP.addP(P2)
    return ReP

【问题讨论】:

  • mulP 是做什么的。它是生成一个新的向量,还是乘以拥有的向量?因为如果它仍然是笔直的,那么就可以很好地改变前者。
  • 它改变了所有者的参数。

标签: python bezier pyglet


【解决方案1】:

好的,我明白了,问题出在我的 Python 技能上。贝塞尔函数总是改变控制点的原始坐标。修好后,曲线很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-27
    • 2011-03-10
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多