#define USE_KERNEL
#include <tigcclib.h>
#include "genc.h"
int _ti89; // Produce .89Z File
void wait() //vitesse de 30HZ (doc de GenLib)
{
gl_timer = 0;
while (gl_frame_timer < 1);
gl_frame_timer = 0;
}
void _main(void)
{
DSCREEN *Scr;
HANDLE Hd;
int i,j,r;
char circle[360][30];
char xsin[720], ysin[720];
int xx,yy;
char xpts[720][360] ,ypts[720][360];
int sinptr = 0;
gl_init();
gl_init_dscreen(&Scr, &Hd);
gl_push_hd(Hd);
gl_set_dscreen_function(Scr);
gl_set_dscreen_int(Scr);
gl_cls();
/*Precalcul des cercles*/
for(i=1;i<30;i++)
{
r = 0;
for(j=1;j<360;j++)
{
r+=(0.0175)*4;
circle[j][i]=floor(sin(r)*(5+i))+(5+i); //stockage des valeurs
}
}
/*Calcul des Xsin et Ysin*/
r = 0;
for (j=1;j<720;j++)
{
r+=0.0175;
xsin[j]=floor(sin(r)*140)+140;
ysin[j]=floor(cos(r)*90)+90;
}
do
{
wait();
if (sinptr>158)
sinptr=0;
sinptr+=2;
/*Affichage et effacement des cercles (pxl par pxl)*/
/*Ce n'est pas forcement la meilleure maniere de faire*/
/*en fait, cette methode est assez lente*/
for (i=1;i<30;i++)
{
for (j=1;j<90;j++)
{
xx=xpts[j][i]; //on sotck les anciens pts
yy=ypts[j][i];
gl_put_pixel(xx,yy*160,0); //effacer le dernier point
xx=(circle[j][i]+xsin[i+sinptr])-i*4; //nouvelle position
yy=(circle[j+23][i]+ysin[sinptr+90+i])-(i*4);
if ((xx>0) && (xx<159)) //checker si c dans l'ecran ti89

if ((yy>0) && (yy<99))
gl_put_pixel(xx,yy*160,3); //faut quand mm afficher un pxl
xpts[j][i]=xx;
ypts[j][i]=yy;
}
}
}while(!kbhit());
gl_free_hd();
gl_quit();
}
vous avez une idée ??
