Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 立方bé;齐尔曲线问题_C#_.net_Bezier - Fatal编程技术网

C# 立方bé;齐尔曲线问题

C# 立方bé;齐尔曲线问题,c#,.net,bezier,C#,.net,Bezier,我试图通过使用中使用的公式来优化贝塞尔曲线的实现,我现在的实现速度非常慢,但至少应该是准确的。使用以下命令: 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.125324.625) 尝试X轴的公式,我进行如下计算: var x = Math.Pow(1 - t

我试图通过使用中使用的公式来优化贝塞尔曲线的实现,我现在的实现速度非常慢,但至少应该是准确的。使用以下命令:

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.125324.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坐标,这显然是不对的。我错过了什么

Duh!现在看看我自己的问题,我看到了显而易见的结果。最后一位是Math.Pow(t,3)+p3.X;应该是数学。Pow(t,3)*p3.X;。现在它可以工作了。

Math.Pow
没有针对低整数功率进行优化。通过手动计算功率,您可以在不损失显著精度的情况下获得显著的速度提升。谢谢您的提示,@harold。这对我来说是新鲜事。