2016-06-05 3 views
0

J'ai donc récemment choisi la programmation graphique et j'ai voulu calculer une courbe de Bézier cubique. J'ai trouvé this excellent answer sur Bézier quadratique mais je ne sais pas comment le convertir en une courbe de Bézier cubique.Comment convertir le code de la courbe bezier quadratique en courbe bezier cubique?

+0

Il semble que la réponse se trouve à la fin du lien que vous avez mentionné –

+0

je suis un noob de maths, donc si vous pouviez me aider à comprendre avec un code qui mettrait fin à mes jours souffrant –

+0

Je vais poster une réponse bientôt –

Répondre

8

Pour la courbe de Bézier cubique, comme vous le voyez dans le lien que vous avez partagé, les lignes vertes sont obtenues à partir de la même procédure que la courbe quadratique. les différences sont: vous avez deux lignes vertes, et ensuite vous devez calculer une ligne bleue basée sur eux. Ainsi, la boucle change for comme:

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); 
} 
+0

Dieu c'est la meilleure putain de réponse que j'ai lu depuis longtemps. J'ai lutté pendant des mois (j'ai 15 ans dans une ville rurale en Inde sans aucune aide)! Je vous remercie! –

+0

Vous êtes les bienvenus :) –