我正在尝试使用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)
尝试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坐标,这显然是不对的。我在这里错过了什么?
答案 0 :(得分:2)
咄!现在看看我自己的问题,我看到了显而易见的问题。最后一位Math.Pow(t,3)+ p3.X;应该是Math.Pow(t,3)* p3.X;。现在它有效。