static void plot4ellipsePoints (int cx, int cy, int x, int y, int colour, int filled) { if (filled) { lcd128x64line (cx + x, cy + y, cx - x, cy + y, colour) ; lcd128x64line (cx - x, cy - y, cx + x, cy - y, colour) ; } else { lcd128x64point (cx + x, cy + y, colour) ; lcd128x64point (cx - x, cy + y, colour) ; lcd128x64point (cx - x, cy - y, colour) ; lcd128x64point (cx + x, cy - y, colour) ; } }
void lcd128x64rectangle (int x1, int y1, int x2, int y2, int colour, int filled) { register int x ; if (filled) { /**/ if (x1 == x2) lcd128x64line (x1, y1, x2, y2, colour) ; else if (x1 < x2) for (x = x1 ; x <= x2 ; ++x) lcd128x64line (x, y1, x, y2, colour) ; else for (x = x2 ; x <= x1 ; ++x) lcd128x64line (x, y1, x, y2, colour) ; } else { lcd128x64line (x1, y1, x2, y1, colour) ; lcd128x64lineTo (x2, y2, colour) ; lcd128x64lineTo (x1, y2, colour) ; lcd128x64lineTo (x1, y1, colour) ; } }
void lcd128x64circle (int x, int y, int r, int colour, int filled) { int ddF_x = 1 ; int ddF_y = -2 * r ; int f = 1 - r ; int x1 = 0 ; int y1 = r ; if (filled) { lcd128x64line (x, y + r, x, y - r, colour) ; lcd128x64line (x + r, y, x - r, y, colour) ; } else { lcd128x64point (x, y + r, colour) ; lcd128x64point (x, y - r, colour) ; lcd128x64point (x + r, y, colour) ; lcd128x64point (x - r, y, colour) ; } while (x1 < y1) { if (f >= 0) { y1-- ; ddF_y += 2 ; f += ddF_y ; } x1++ ; ddF_x += 2 ; f += ddF_x ; if (filled) { lcd128x64line (x + x1, y + y1, x - x1, y + y1, colour) ; lcd128x64line (x + x1, y - y1, x - x1, y - y1, colour) ; lcd128x64line (x + y1, y + x1, x - y1, y + x1, colour) ; lcd128x64line (x + y1, y - x1, x - y1, y - x1, colour) ; } else { lcd128x64point (x + x1, y + y1, colour) ; lcd128x64point (x - x1, y + y1, colour) ; lcd128x64point (x + x1, y - y1, colour) ; lcd128x64point (x - x1, y - y1, colour) ; lcd128x64point (x + y1, y + x1, colour) ; lcd128x64point (x - y1, y + x1, colour) ; lcd128x64point (x + y1, y - x1, colour) ; lcd128x64point (x - y1, y - x1, colour) ; } } }
void lcd128x64lineTo (int x, int y, int colour) { lcd128x64line (lastX, lastY, x, y, colour) ; }