Bonjour,
J'ai besoin d'implanter une revolution dans mom programme mais je n'arrive pas a comprendre le principe.En cherchent avec google je n'ai pas trouver d'exemple concre.Pourier vous m'expliquer comment mettre cela en place.
Tu veux trianguler une surface de révolution ? Ou bien avoir une description mathématique exacte ?
Pourquoi parles tu de NURBS ? tu veux la convertir en surface Nurbs ?
Quelle est la nature de ta courbe de révolution ? une NURBS ? Un polynome paramétrique ? Autre ?
Alors soit, partons d'une courbe paramétrique (une Nurbs, une Bezier, ou une autre polynomiale) Disons une Bezier.
Tu définis un axe central Z (axe de révolution), ainsi que ta "swept curve" f(t) -> celle qui subira la révolution. (parametrique entre 0 et 1)
Tu te définis un "pas" vertical dv, tu procederas donc sur f(0), f(dv), f(2*dv), f(3*dv) .... f(n*dv), ... f(1)
Pour donc un f(t) donné, tu calcules o(t) -> projection orthogonale du point f(t) sur l'axe Z.
Tu prends le vecteur local X = f(t) - o(t) -> tu le normalises.
Tu calcules le vecteur Y comme produit vectoriel de Z par X.
tu obtiens une base locale o(t),X,Y,Z
Le rayon local r(t) est la norme de f(t)-o(t)
-> tu obtiens donc un cercle de centre o(t), de base locale X,Y, axe Z, rayon r(t)
tu diécrétises le cercle avec une précision horizontale rh.
Avec tous les f(0), f(dv), f(2*dv), f(3*dv) .... f(n*dv), ... f(1), tu obtiens N cercles discréisés avec le meme nombre de segments chacun
Il suffit, pour finir, de relier chaque segment de cercles adjascents par un Quad.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html