贝塞尔曲线中的数学误差

时间:2012-10-18 20:27:57

标签: math lua bezier

我正在尝试绘制生成立方 Bezier曲线的图,我已经设法能够轻松生成线性和四边形,但我的立方公式一直出错,

线性公式:x = (1-t)*(p0x + (t * p1x)) 四元公式:x = (1-t)^2 * p0x + 2*(1-t) * t * p1x + t^2 * p2x 立方公式:x = (1–t)^3 * p0x + 3*(1–t)^2 * t * p1x + 3*(1–t)*t^2 * p2x + t^3 * p3x

虽然四元和三元公式非常相似,但是“ - '”附近的三次误差“')'。如何解决这个问题?

我在Lua编程。

1 个答案:

答案 0 :(得分:3)

立方公式中的减法符号不是-

>>> s = """
... linear formula: `x = (1-t)*(p0x + (t * p1x))`
... quad formula: `x = (1-t)^2 * p0x + 2*(1-t) * t * p1x + t^2 * p2x`
... cubic formula: `x = (1–t)^3 * p0x + 3*(1–t)^2 * t * p1x + 3*(1–t)*t^2 * p2x + t^3 * p3x`
... 
... """
>>> for line in s.splitlines():
...     print repr(line)
... 
''
'linear formula: `x = (1-t)*(p0x + (t * p1x))`'
'quad formula: `x = (1-t)^2 * p0x + 2*(1-t) * t * p1x + t^2 * p2x`'
'cubic formula: `x = (1\xe2\x80\x93t)^3 * p0x + 3*(1\xe2\x80\x93t)^2 * t * p1x + 3*(1\xe2\x80\x93t)*t^2 * p2x + t^3 * p3x`'
''

他们实际上是U + 2013 ,这是EN DASH。解决这些问题,应该没问题。