Formulez pour calculer les coordonee d'une sphere

tomart2005 Messages postés 6 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 19 janvier 2007 - 12 juil. 2006 à 17:12
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 - 13 juil. 2006 à 08:52
Bonjour

je cherche la formule pour calculer les coordonee d'une sphere en 3d (x,y,z). Je souhaite par la suite adapter cette formule avec des instructions FPU et afficher les points avec l'api Setpixel.

merci
++

1 réponse

cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
13 juil. 2006 à 08:52
Bonjour tomart2005,

D'un point de vue mathématique une sphère de centre x0,y0,z0 et de rayon R est l'ensemble des points satisfaisant la formule:

(x-x0)²+(y-y0)²+(z-z0)²=R²
Par compte comme je suppose que tu n'as pas d'écran tridimensionnel, tu va devoir afficher non pas la sphère mais une projection de celle si sur un plan (2D).
Pour afficher tes points tu vas devoir faire un maillage de ta sphère et dans ce cas il serait préférable d'utiliser les coordonnées polaires R,Theta,Phi avec:
R=constante
Theta ("latitude") compris entre -pi/2 et +pi/2
Phi ("longitude") compris entre 0 et 2.pi

Pour convertir tu auras:
x=x0+R.cos(Theta).cos(Phi)
y=y0+R.cos(Theta).sin(Phi)
z=z0+R.sin(Theta)

Inversement si x,y,z sont sur la sphère:
R²=(x-x0)²+(y-y0)²+(z-z0)²
Theta=arcsin((z-z0)/R)
Phi=arccos((x-x0)/(R.cos(Theta))) ou Phi=-arccos((x-x0)/(R.cos(Theta)))
Phi=arcsin((y-y0)/(R.cos(Theta))) ou Phi=pi-arcsin((y-y0)/(R.cos(Theta)))
Une seule solution est possible : le calcul à partir des x te donne deux solutions
le calcul à partir des y te donne deux autres solutions dont une commune avec celles des x.

A+
0
Rejoignez-nous