Bon voila l'algo en C (sous glut)
void MidPointCircleAlgo(int x0, int y0, int r)
{
/* x0 abscisse centre du cercle */
/* y0 ordonnee centre du cercle */
/* r rayon du cercle */
int x,y,d;
glBegin(GL_POINTS);
x = 0 ;
y = r ;
d = 1 - r ;
plot(x+x0,y+y0);
plot(y+x0,x+y0);
plot(y+x0,-x+y0);
plot(x+x0,-y+y0);
plot(-x+x0,-y+y0);
plot(-y+x0,-x+y0);
plot(-y+x0,x+y0);
plot(-x+x0,y+y0);
while ( y > x )
{
if ( d < 0 )
d += 2 * x + 3 ;
else
{
d += 2 * (x - y) + 5 ;
y-- ;
}
x++ ;
plot(x+x0,y+y0);
plot(y+x0,x+y0);
plot(y+x0,-x+y0);
plot(x+x0,-y+y0);
plot(-x+x0,-y+y0);
plot(-y+x0,-x+y0);
plot(-y+x0,x+y0);
plot(-x+x0,y+y0);
}
glEnd();
}
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com
Je vous enverrez l'exe pour voir le resultat!
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com
paxal Le 28/02/2003 à 13:37 c'est clair que c'est assez impressionnant. Soit dit en passant, ca marche aussi pour les ellipses
J'ai des doutes sur la qualité du cercle avec cet algo!
Mais je vais essayer...
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com
Ben je n'ai pas de doute moi, ca marche parfaitement !
heurf, ca bug a partir de combien ?
vince Le 28/02/2003 à 14:29 ça fait une espèce d'octogone ça non ?
je pense que ca doit ressembler à ca oué ... mais non fermé je pense
L'algo marche pas du tout sur pc!
Ca foire totalement!
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com
Nan il marche mais il est moin lissé!!!!!!
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com
Sisi tu peut le prendre autant pour moa....
Je viens de voir le prof cet algo est applicable qu'a des cercles...
L'algo du haut est utilsable pour toute courbe du type x²+y²=c....
En gros elle est aussi applicable pour les ellipses!
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com
Kevin Kofler Le 28/02/2003 à 14:44Edité par Kevin Kofler le 28/02/2003 à 14:45 nEUrOne, il y a un bogue dans ton code (ou celui de TiMad)!
if ((chgmt += (xx++) + xx) >= 0)
Tu n'as pas le droit d'utiliser xx++ et xx dans la même expression (dans le même "sequence point")!
Ben ca marche tres bien kevin l'algo..
Je viens de tester en opengl...
Vraiment bien..
La difference entre les 2 algos sont minime...
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com
Je parle au niveau graphique...
Le premier n'affiche pas que des cercles...
Celui de timad si!
Et les courbes de beziers ya l'equivalent sur ti?
Si dieux existe alors Armin van Buuren en est 1!!
Pour me contacter sur msn:mastergb@hotmail.com
kk: c le mien, ca marche nickel
mastergb1: j'ai aussi codé pour bezier si tu veux
C'est tout de même bien étrange que ca marche parfaitement sous divers compilateurs ... nan ?
C'est le "frontend" qui décide "quand" incrémenter ?

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Se qui me laisse perplexe c que g tjrs lu que le C utilise un ordre de priorité, et lisait de gauche a droite..
Donc :
if ((chgmt += (xx++) + xx) >= 0)
=
1 -> xx++
2 -> chgmt += xx
3 -> chgmt += xx
4 -> chgmt >= 0
Voir plus simple :
1 -> xx++
2 -> chgmt += xx*2
4 -> chgmt >= 0
On pourrait donc changer le code en :
if ((chgmt += ((xx++) * 2 )) >= 0)
ou
if ((chgmt += ((xx++) << 1)) >= 0)

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.