2009-06-30 6 views
1

J'essaie quelques tutoriels de http://nehe.gamedev.net, afin d'apprendre la programmation openGL, je voudrais positionner les sphères le long d'une courbe de Bézier de sorte qu'elles apparaissent comme une chaîne de perles. comment puis-je positionner de telles sphères le long de la courbe? Je dessine la courbe en utilisant l'algorithme de Casteljau et je peux donc obtenir les points XYZ sur la courbe.position des sphères le long d'une courbe bezier

Répondre

1

Si vos sphères sont assez petites par rapport à la longueur totale de la courbe de Bézier, vous pouvez simplement positionner vos sphères à intervalles réguliers pour obtenir une apparence similaire à une chaîne de perles. (Si les sphères sont relativement grandes, vous devrez commencer à vous soucier du chevauchement des sphères - pas un problème facile, et probablement pas très instructif pour apprendre OpenGL.)

La valeur du paramètre t d'une courbe de Bézier varie de 0 à 1. Pour évaluer votre courbe de Bézier à 10 endroits (les extrémités et huit points intérieurs), vous pouvez faire quelque chose comme ceci:

for(int i = 0; i <= 9; ++i) 
{ 
    double t = i/9.0; 
    double x, y; 
    EvalBezier(t, x, y); 
    DrawSphere(x, y, radius); 
} 

EvalBezier(t, x, y) Remplit (x,y) pour un t donné. Il suffit de choisir radius pour vous donner un résultat agréable. Si vous voulez essayer de choisir automatiquement radius, utilisez simplement la moitié de la distance minimale entre le point i et les points i-1 et i+1 comme estimation approximative. Si vous faites cela, n'oubliez pas de gérer les points de fin spécialement, en utilisant seulement les points suivants ou précédents (selon votre choix).

Questions connexes