【问题标题】:How to convert quadratic bezier curve code into cubic bezier curve?如何将二次贝塞尔曲线代码转换为三次贝塞尔曲线?
【发布时间】:2016-10-05 03:51:05
【问题描述】:

所以我最近学习了图形编程,我想计算三次贝塞尔曲线。我在二次贝塞尔曲线上找到了this excellent answer,但我不知道如何将其转换为三次贝塞尔曲线。

【问题讨论】:

  • 看来答案就在你提到的链接的末尾
  • 我是一个数学菜鸟,所以如果你能帮助我理解一些可以结束我痛苦日子的代码
  • 我会尽快发布答案
  • 如果你学习了图形编程,你可能会想给pomax.github.io.bezierinfo 读一读。至少是前几节。
  • @Mike'Pomax'Kamermans 您的链接无效。看来你的意思是this page

标签: c++ opengl directx curve bezier


【解决方案1】:

对于三次贝塞尔曲线,正如您在共享的链接中看到的那样,绿线是从与二次曲线相同的过程中获得的。区别是:你有两条绿线,然后你需要根据它们计算一条蓝线。所以for 循环变为:

for( float i = 0 ; i < 1 ; i += 0.01 )
{
    // The Green Lines
    xa = getPt( x1 , x2 , i );
    ya = getPt( y1 , y2 , i );
    xb = getPt( x2 , x3 , i );
    yb = getPt( y2 , y3 , i );
    xc = getPt( x3 , x4 , i );
    yc = getPt( y3 , y4 , i );

    // The Blue Line
    xm = getPt( xa , xb , i );
    ym = getPt( ya , yb , i );
    xn = getPt( xb , xc , i );
    yn = getPt( yb , yc , i );

    // The Black Dot
    x = getPt( xm , xn , i );
    y = getPt( ym , yn , i );

    drawPixel( x , y , COLOR_RED );
}

【讨论】:

  • 天哪,这是我很久以来读过的最好的答案。我已经苦苦挣扎了几个月(我在印度的一个农村城市 15 岁,没有任何帮助)!谢谢!
猜你喜欢
  • 2011-03-10
  • 1970-01-01
  • 1970-01-01
  • 2012-07-27
  • 2012-01-19
  • 1970-01-01
  • 1970-01-01
  • 2011-05-08
  • 2015-06-15
相关资源
最近更新 更多