2

我正在尝试通过使用此维基百科文章中使用的公式来优化贝塞尔曲线实现。我现在的实施速度非常慢,但至少它应该是准确的。使用以下内容:

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 坐标,这显然是不正确的。我在这里想念什么?

4

1 回答 1

2

呸!现在看看我自己的问题,我明白了。最后一位 Math.Pow(t, 3) + p3.X; 应该是 Math.Pow(t, 3) * p3.X;。现在它起作用了。

于 2012-08-25T23:04:38.630 回答