[elektro] Vonal rajzolás

Huszti Andras kyrk at villamvadasz.hu
Sat Mar 21 09:53:21 CET 2009


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);
		}
	}
}


2009-03-21, szo keltezéssel 09.34-kor Skandar Graun ezt írta:
> Keresd meg a ZX-spektrum ROM visszafejtést. Nagyon jó és tömör rajzoló
> algoritmusok vannak benne. A Z80 kód pedig elég általános felépítésű.
> 
> 2009/3/21 Tóth Péter <tope1 at freemail.hu>:
> > Sziasztok!
> >
> > Tudtok valami egyszerű algoritmust ajánlani grafikus kijelzőhöz vonal
> > rajzolására?
> > Az első próba sikerült jobbra-lefele, de ezt mind a 4 síknegyedre meg
> > kell írni külön, tele vizsgálatokkal?
> > Vagy ki lehet matekozni egyszerűen is?
> >
> > Köszi
> >
> > ToPe
> >
> >
> > -----------------------------------------
> >          elektro[-flame|-etc]
> >
> 
> -----------------------------------------
>           elektro[-flame|-etc]



More information about the Elektro mailing list