Ejemplo n.º 1
0
 void lcd_drawline(int x0, int y0, int x1, int y1, unsigned char color) {
    int dy = y1 - y0;
    int dx = x1 - x0;
    int stepx, stepy;
    if (dy < 0) { 
        dy = -dy; 
        stepy = -1; 
    } 
    else { 
        stepy = 1; 
    }
    if (dx < 0) {
        dx = -dx; 
        stepx = -1; 
    } 
    else { 
        stepx = 1; 
    }
    dy <<= 1; // dy is now 2*dy
    dx <<= 1; // dx is now 2*dx
    
    lcd_drawpoint(x0, y0, color);

    if (dx > dy) {
        int fraction = dy - (dx >> 1); // same as 2*dy - dx
        while (x0 != x1) {
            if (fraction >= 0) {
                y0 += stepy;
                fraction -= dx; // same as fraction -= 2*dx
            }
            x0 += stepx;
            fraction += dy; // same as fraction -= 2*dy
            lcd_drawpoint(x0, y0, color);
        }
    } 
Ejemplo n.º 2
0
void PutPixel(SHORT x, SHORT y) {
BYTE mask, display;


 	mask = 1;				// Left shift 1 by bit position

/* Read data from display buffer*/
  display = lcd_read_point(x ,y);

	if(_color > 0)					// If non-zero for pixel on
		display |= mask;			// or in mask
	else							// If 0 for pixel off
		display &= ~mask;			// and with inverted mask
	  lcd_drawpoint(x , y,display);
}