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
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);
}
Où 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).
- 1. Écrire du texte le long d'une courbe en Java
- 2. Courbes de Bezier approximatives de degré N
- 3. Comment puis-je dessiner une courbe dont l'épaisseur varie le long de son trajet?
- 4. Comment faire tourner des sphères dans bullet3d
- 5. comment tesselate bezier triangles?
- 6. Dessiner des formes ou des images sur une trajectoire courbe
- 7. cookie le plus long
- 8. Courbe sinusoïdale sur le graphique - SQL
- 9. Dessiner une courbe quadratique
- 10. Ajustement de courbe
- 11. Qu'est-ce que "long long (^ blockFun)() = (long long (^)()) moreBlockFun" signifie et fait?
- 12. Comment trouver le lat/long qui est x km au nord d'un lat/long donné?
- 13. Requête SQL - Le long des lignes d'un tableau croisé dynamique
- 14. Bibliothèque d'ajustement de courbe Java
- 15. Spécificateur de format pour « long long »
- 16. convertir la chaîne en long long
- 17. Joindre deux sphères avec un cylindre dans WPF 3D
- 18. WPF Flick le long d'un chemin (Surface)
- 19. Organiser les UILabels le long du cercle
- 20. Position des champs (position, normale, etc.) dans un sommet D3D9
- 21. Algorithme pour trouver l'anagramme le plus long
- 22. Texture de sphères avec cubes (pas de cartes de réflexion)
- 23. Comment refactoriser le long contrôleur frontal?
- 24. Le chemin le plus long dans le code Java
- 25. Grattoir d'écran C# - Manipuler le long uri
- 26. Déplacer une imageview le long d'un chemin
- 27. Convertir HICON pour le long non signé
- 28. Afficher la position des milliers
- 29. Dessiner une courbe de Dragons en Python
- 30. cubique/courbe lisse en C Interpolation #