1

-

2

-

3

genlib pitet ? (pas certain qu'elle gère le clipping mais bon embarrassed)

4

-

5

A mon avis, le plus simple c'est que tu fasses ta propore routine de ligne avec l'algo de Bresenham (je crois que c'est le plus rapide), sauf que tu testes les coordonnées avant d'afficher le point.

6

Tiens (je le mets en PRE, parce qu'il y a un bug chiant avec les sources) :
#define Pix(a,x,y) (*(((unsigned char*)(a))+(((y)<<5)-((y)<<1)+((x)>>3))) |= ((unsigned char)(0x80>>((x)&7))))

void FastLineClip(int x1,int y1,int x2,int y2,void *addr)
{
	int dx,dy,i,xinc,yinc,cumul,x,y;
	
	x=x1;
	y=y1 ;
	dx=x2-x1;
	dy=y2-y1;
	xinc=(dx>0)?1:-1;
	yinc=(dy>0)?1:-1;
	dx=abs(dx);
	dy=abs(dy);
	if(x>=0 && y>=0 && x<240 && y<128)
		Pix(addr,x,y);
	if(dx>dy)
	{
		cumul=dx>>1;
		for(i=1;i<=dx;i++)
		{
			x+=xinc;
			cumul+=dy;
			if(cumul>=dx)
			{
				cumul-=dx;
				y+=yinc;
			}
	if(x>=0 && y>=0 && x<240 && y<128)
		Pix(addr,x,y);
		}
	}
	else
	{
		cumul=dy>>2;
		for(i=1;i<=dy;i++)
		{
			y+=yinc;
			cumul+=dx;
			if(cumul>=dy)
			{
				cumul-=dy;
				x+=xinc;
			}
	if(x>=0 && y>=0 && x<240 && y<128)
		Pix(addr,x,y);
		}
	}
}

Voilà, j'ai pu faire ça en combinant un algo que j'ai trouvé sur un site avec les macros d'extgraph (au lieu de DrawPix) et c'est vraiment super rapide !!
Et si on enlève le clipping, ça l'est encore plus !

7

t'1 orion ! fait du remplissage de polygones, pas juste les arrêtes !
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

8

Orion_, lis attentivement ce qui suit


g remarqué que tu ne sais pas faire la différence entre "ça" et "sa"
ça me gave de lire des fautes pareilles ..... (je dis pas ça pour te vexer mais bon..)
donc je te fais un pitit cours :

- "sa" c pour le possesif, c le féminin de "son"
- "ça" c pour le demonstratif.

par exemple, on écrira "il a lavé sa voiture" pasque c la sienne.
alors que " il a lavé ça voiture" n'a AUCUN sens !!

autre exemple :
"ça me gave de lire des fautes pareilles" est équivalent à Ceci me gave [...]
avec "sa", ça n'aurrait aucun sens triso

voilà, ne le prend pas mal surtout embarrassed (mais des fautes aussi énormes c qd meme pas normal !)

9

A mon avis, il le sait, mais il n'a pas la même façon que toi d'écrire, donc il ne se rend pas compte qu'il fait des fautes, ou bien il s'en fout complètement.

Je ne dis pas que je ne fais jamais de fautes, mais c'est vrai que c'est chiant de lire des post bourrés de fautes : on ne comprend plus rien !

10

-

11

justement, je t'assures que c plus facile le remplissage que les arrêtes tongue
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

12

Orion_ a écrit :
for(i=0;i<Nb_points*3;i+=2) DrawClipLine(&(WIN_RECT){Point2D[lngcoord[i]].x,Point2D[lngcoord[i]].y,
Point2D[lngcoord[i+1]].x,Point2D[lngcoord[i+1]].y},
&(SCR_RECT){{0, 0, 159, 99}},A_NORMAL);
voila mon code, et il me sort l'erreur :: Invalid lvalue in unary "&"

Mets à jour TIGCC.
On ne peut prendre l'adresse d'un constructeur par transtypage à initialisateur variable (c'est-à-dire [i]&(WIN_RECT){Point2D[lngcoord[i]].x,Point2D[lngcoord].y,Point2D[lngcoord[i+1]].x,Point2D[lngcoord[i+1]].y}) que depuis TIGCC 0.94 beta 14.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

13

-