[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