立方贝塞尔曲线问题

时间:2012-08-25 22:57:17

标签: c# .net bezier

我正在尝试使用this wikipedia article.中使用的公式来优化贝塞尔曲线实现我现在的执行速度非常慢,但至少它应该是准确的。使用以下内容:

p0 = (0, 256) //Violet dot
p1 = (70, 223) //Green dot
p2 = (24, 472) //Blue dot
p3 = (255, 256) //Yellow dot
t = 0.5

使用我目前的代码绘制,T = 0.5的点是(67.125,324.625)

enter image description here

尝试X轴的公式,我做这样的计算:

var x = Math.Pow(1 - t, 3) * p0.X + 3 * Math.Pow(1 - t, 2) * t * p1.X + 3 
        * (1 - t) * Math.Pow(t, 2) * p2.X + Math.Pow(t, 3) + p3.X;

但是这给了我一个290.375的X坐标,这显然是不对的。我在这里错过了什么?

1 个答案:

答案 0 :(得分:2)

咄!现在看看我自己的问题,我看到了显而易见的问题。最后一位Math.Pow(t,3)+ p3.X;应该是Math.Pow(t,3)* p3.X;。现在它有效。