[elektro] Vonal rajzolás

Tóth Péter tope1 at freemail.hu
Sat Mar 21 10:18:52 CET 2009


Én is... :)
Ehhez hasonlót kezdtem el, csak gépikódban.
Aztán kezdett bonyolódni a 4 irány kezelésével, meg a 2 byte-os x 
kezeléssel.
Ha nem marad más, átdolgozom assembly-be.

Ezt a visszafejtést hol érdemes keresni? Magyar oldal alig van 10, angol 
meg több százezer...

A kijelző tud auto increment-et, lehet, hogy valahol még az is kapóra jön.


ToPe

Huszti Andras írta:
> En egy gyors megoldast valasztottam:
>
> void lcd_linexy(signed char dx, signed char dy, unsigned char color){
> 	//todo
> 	unsigned int ddx, ddy;
> 	signed int i, j, dirx, diry;
> 	double tg;
> 	if (dx > 0 ) {
> 		dirx = 1;
> 		ddx = dx;
> 	} else {
> 		dirx = -1;
> 		ddx = -dx;
> 	}
>
> 	if (dy > 0 ) {
> 		diry = 1;
> 		ddy = dy;
> 	} else {
> 		diry = -1;
> 		ddy = -dy;
> 	}
>
> 	if (ddx > ddy) {
> 		tg = (double)ddy / (double)ddx;
> 		for (i = 0; i <= ddx; i++) {
> 			j = (double)i * tg;
> 				lcd_put_pixel(pen_x + (i * dirx), pen_y + (j * diry), color & 0x01);
> 		}
> 	} else {
> 		tg = (double)ddx / (double)ddy;
> 		for (i = 0; i <= ddy; i++) {
> 			j = (double)i * tg;
> 				lcd_put_pixel(pen_x + (j * dirx), pen_y + (i * diry), color & 0x01);
> 		}
> 	}
> }
>
>
>   



More information about the Elektro mailing list