Bonjour,
voilà j'ai un petit soucis je dois tracer une sphère j'ai l'équation mais j'ai du mal à l'utiliser.
ak² + bk + c
a = Vx² + Vy² + Vz²
b = 2(XoeilVx + YoeilVy + ZoeilVz)
c = xoeil² + yoeil² + zoeil² - R²
mais je ne vois pas comment faire
Version imprimable
Bonjour,
voilà j'ai un petit soucis je dois tracer une sphère j'ai l'équation mais j'ai du mal à l'utiliser.
ak² + bk + c
a = Vx² + Vy² + Vz²
b = 2(XoeilVx + YoeilVy + ZoeilVz)
c = xoeil² + yoeil² + zoeil² - R²
mais je ne vois pas comment faire
Bonjour,
Si je ne me trompe pas, dans ton sujet tu dois avoir la suite de l'explication, notamment qu'il faut vérifier que pour chaque pixel de l'écran, tu calcule cette equation avec les coordonnées X et Y de ton pixel en trouvant le discriminant, si il est positif alors il y a intersection sinon ya rien (ou 1 seule intersection qu'on ne prends pas en compte). Et tu recommences pour chaque pixel.
PS: Raytracer? ^^
Oui. Si j'ai bien compris il faut que je résous l'équation du second degrés si delta > 0 j'affiche le pixel c'est ça ? et x,y il faut les calculer ou pas ? parce qu'en affichant les pixels il faut aussi déplacer x,y
Dans tout les cas tu affiches le pixel, mais tu affiches une couleur différente si delta >0.
X et Y vont forcément changer puisqu'ils correspondent à la coordonnées de ton pixel respectivement en abscisse et en ordonnés. Le premier pixel sera de coordonnées (X = 0,Y = 0), le deuxième (X = 0, Y = 0) etc...
OK merci pour ton aide. Je vais essayer de le faire et si vraiment je n'y arrive pas je reviendrai pour demander plus d'explications. Je dois faire comment pour la boucle ?
ce que je voulais dire c'est quelle condition faut remplir pour tracer la sphere
C'est vrai, il n'y a pas de notion d'angle :mrgreen:
Mais, si je ne me trompe pas
- x doit être compris entre (Xoeil - R) et (Xoeil + R)
- y doit être compris entre (Yoeil - R) et (Yoeil + R)
- z doit être compris entre (Zoeil - R) et (Zoeil + R)
- x² + y² + z² = 1
Donc un algo comme celui ci:
Ensuite, on peut découpler la boucle :mrgreen:Code:
1
2
3
4
5
6
7
8 Pour x: (Xoeil - R) -> (Xoeil + R) faire Pour y: (Yoeil - R) -> (Yoeil + R) faire Calculer z Vérifier z, si cela te semble utile Afficher le point (x, y, z) Afficher le point (x, y, -z) Fin Pour Fin Pour
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Pour x: Xoeil -> (Xoeil + R) faire Pour y: Yoeil -> (Yoeil + R) faire Calculer z Vérifier z, si cela te semble utile Afficher le point (x, y, z) Afficher le point (x-R, y, z) Afficher le point (x, y-R, z) Afficher le point (x-R, y-R, z) Afficher le point (x, y, -z) Afficher le point (x-R, y, -z) Afficher le point (x, y-R, -z) Afficher le point (x-R, y-R, -z) Fin Pour Fin Pour
J'ai une petite question: comment je peux "afficher" z ? alors que ma fonction ne peut qu'afficher X,Y ?
J'ai l'impression qu'il y a un concept que tu n'as pas trop saisi.
Le monde et l'écran sont distincts.
Le premier est en 3D, le second est un plan vers lequel sont projetés des rayons venant du monde.
Recherche "projection orthographique" et "projection perspective", pour plus d'information.
Dans la catégorie 2D-3D-Jeux, tu auras des explications détaillées.
Il s'agit en gros de calculer les coordonnées à l'écran d'un point situé dans l'espace.