Ce petit demo graphique illustre une courbe qui tourne. Il effectue des tours tant qu'une touche n'est pressee au clavier.
L'equation miracle de ce phenomene est parametrique :
x=sint et y=cost
Pour pouvoir generer le tracé de cette courbe, on doit incrementer le parametre t jusqua 2PI(360 degre). Pour assouvrir votre curiosite, essayez de tracer cette courbe via une calculatrice scientifique telles que Texas instruments, Sharp, Casio qui sont dotées de cette fonctionalité(Passez la calculatrice en mode d'equation parametrique .Pour ce, presser Mode puis selectionnez Par). Ensuite, entrer l'equation, puis afficher le graphe correspondant.
A vous dire vrai, j'utilise un truc. J'y ai introduit une variable angle dans l'equation, puis a chaque nouvelle valeur de la variable angle, je trace la courbe. Par ex:
short angle=0,t;
Debut
while (!kbhit())
{
for(t=0;t<=360;t++)
{
x=100*sin((t+angle)*3.14159/180);//argument de cos doit etre convertit en radian
y=60*cos(t*3.14159/180);//d'ou t*pi/180
putpixel(x,y,couleur,ecranvirtuel);
}
copier ecran virtuel sur l'ecran reel
memcpy(ecranreel,ecranvirtuel,64000L);
memset(ecranvirtuel,0,64000L)//on efface notre ecran virtuel apres la copie
angle++;
if(angle>360) angle=0;//si notre compteur angle depasse 360 degre,donc notre courbe
//a fait le nbre de tours qu'il faut(360)
Fin
Noter qu'a chaque nouvelle valeur d'angle, on reconstruit la courbe puis l'affiche. Le deplacemen de celui-ci se fait de maniere circulaire a chaque valeur d'angle. Ce qui donne a vos yeux un effet de rotation.
De plus, le code n'est pas optimisé car les calculs se font en temps reel. Ce qui diminue un peu la vitesse de mon petit programme. Mais, je ne l'ai fait qu'a titre de démonstration de la puissance des fonctions trigonometriques dans le graphisme.
Cependant, j'attend vos critiques et commentaires. Car , ils m'aideront a percer le plafond de la programmation graphique que j'adore.
Ce code vient d'un programmeur apprenti du coté d'Haiti (pays de la caraibe, en amerique) a l'ecole superieure d'infotronique d'Haiti(ESIH).