Les cercles, pourquoi ca marche pas [OpenGL] - C++ - Programmation
Marsh Posté le 08-02-2004 à 10:30:01
j'y connais rien en programmation, mais ce ne serait pas parce que les pixels ne sont pas carrés ? -> tu calcules par les coordonnées, t'as pas un cercle.
vous moquez pas si c'est une grosse connerie svp
Marsh Posté le 08-02-2004 à 13:05:20
gluSphere ==> oui, mais le reste, tu cherche a faire quoi?
Marsh Posté le 08-02-2004 à 13:13:13
WhatDe a écrit : glTranslatef(i, decrement?CircleGetY(i, 1.0f):-1*CircleGetY(i, 1.0f), -3.0f); |
Donc tu parcours x, et calcules y en conséquence.
x² + y² = r²
donc
y = racine(r²-x²)
Mais ta méthode est crade. x² + y² = qq chose définit un bout du plan : le cercle, le disque, etc. C'est approprié si tu veux colorer pour chaque pixel de l'écran tous ceux qui sont dans un disque. Si tu veux tracer un cercle, le paramétrique (ta 2ème équation) est la plus appropriée : en fonction d'un paramètre, obtention d'un point de la courbe.
Marsh Posté le 08-02-2004 à 16:12:57
youdontcare a écrit : Donc tu parcours x, et calcules y en conséquence. |
Merci
Marsh Posté le 08-02-2004 à 16:34:46
tahitirouge a écrit : j'y connais rien en programmation, mais ce ne serait pas parce que les pixels ne sont pas carrés ? -> tu calcules par les coordonnées, t'as pas un cercle. |
C'est le cas avec certains modes comme le 320x200 (aspect ratio de 1.6, affiché sur un écran 4/3 -> déformation). Comme il disait qu'il obtenait un cercle parfait avec la seconde méthode, ça venait de la première méthode, pas de l'écran.
Marsh Posté le 08-02-2004 à 10:25:15
Hello tout le monde,
Bon je suis plutot Java mais j'avais envie d'essayer de jouer un peu avec OpenGL et je pige pas pourquoi il vaut mieux utiliser les sin et cos pour utiliser un cercle (j'ai quelques lacunes en math ), et que la formule (x-j)^2 + (y-k)^2 = r^2 me dessine plutot une élipse. Voilà le code qui m'embete:
Faites pas attention à la propreté du code
(Pour dessiner une sphere qui décrit un cercle)
(juste pour tracer un cercle, récupéré sur gamedev)
Donc le 1er code me donne une trajectoire élliptique avec des angles assez visibles à gauche et à droite, et le deuxième me donne un cercle parfait.
Pourquoi ?
Merci
Message édité par WhatDe le 08-02-2004 à 10:26:18