void drawCircle(int x0, int y0, int radius) { int x = 0; int y = radius; int delta = 1 - 2 * (radius); int error = 0; while(y >= 0) { gdiPoint(0,x0 + x, y0 + y,0); gdiPoint(0,x0 + x, y0 - y,0); gdiPoint(0,x0 - x, y0 + y,0); gdiPoint(0,x0 - x, y0 - y,0); error = 2 * (delta + y) - 1; if(delta < 0 && error <= 0) { ++x; delta += 2 * x + 1; continue; } error = 2 * (delta - x) - 1; if(delta > 0 && error > 0) { --y; delta += 1 - 2 * y; continue; } ++x; delta += 2 * (x - y); --y; } }
void CRT_Draw_Ring(u16 r, u16 xpos, u16 ypos, u8 fill, float tt) { u32 s = 0; static double phi = 0; if (1) { for(;r>0;r--) { float a = 0; u16 x =0, y = 0; for(s = 0 ;s<((2*3.1415)/tt); s++, a+=tt) { x=xpos+(r*sin(a+phi)); y=ypos+(r*cos(a+phi)); gdiPoint(0,x, y,fill); //phi +=0.000001; } } } //phi += 0.3; // else // { // float a = 0; // u16 x =0, y = 0; // // for(s = 0 ;s<(200*2*3.14); s++, a+=9) // { // x=xpos+(r*sin(a)); // y=ypos+(r*cos(a)); // gdiPoint(0,x, y,1); // } // } return; }
void demoInit(void) { i16 x, y, x1, y1, i, flip; // Demo Point vidClearScreen(); gdiRectangle(0,0,(VID_PIXELS_X - 1),VID_VSIZE - 1,0); gdiDrawTextEx(180, 40, "ARTEKIT", GDI_ROP_COPY); gdiDrawTextEx(161, 55, "AK-STM32-LKIT", GDI_ROP_COPY); gdiDrawTextEx(172, 70, "POINT DEMO", GDI_ROP_COPY); sysDelayMs(3000); srand(sysTicks); for (i = 0; i < 5000; i++) { sysDelayMs(1); x = rand(); x = x % (VID_PIXELS_X - 1); y = rand(); y = y % VID_VSIZE - 1; gdiPoint(NULL,x,y,GDI_ROP_COPY); } sysDelayMs(3000); // Demo Line vidClearScreen(); gdiRectangle(0,0,(VID_PIXELS_X - 1),VID_VSIZE - 1,0); gdiDrawTextEx(180, 40, "ARTEKIT", GDI_ROP_COPY); gdiDrawTextEx(161, 55, "AK-STM32-LKIT", GDI_ROP_COPY); gdiDrawTextEx(175, 70, "LINE DEMO", GDI_ROP_COPY); sysDelayMs(3000); srand(sysTicks); for (i = 0; i < 100; i++) { sysDelayMs(50); x = rand(); x = x % (VID_PIXELS_X - 1); y = rand(); y = y % VID_VSIZE - 1; x1 = rand(); x1 = x1 % (VID_PIXELS_X - 1); y1 = rand(); y1 = y1 % VID_VSIZE - 1; gdiLine(NULL,x,y,x1,y1,GDI_ROP_COPY); } sysDelayMs(3000); // Demo Square vidClearScreen(); gdiRectangle(0,0,(VID_PIXELS_X - 1),VID_VSIZE - 1,0); gdiDrawTextEx(180, 40, "ARTEKIT", GDI_ROP_COPY); gdiDrawTextEx(161, 55, "AK-STM32-LKIT", GDI_ROP_COPY); gdiDrawTextEx(157, 70, "RECTANGLE DEMO", GDI_ROP_COPY); sysDelayMs(3000); srand(sysTicks); for (i = 0; i < 100; i++) { sysDelayMs(50); x = rand(); x = x % (VID_PIXELS_X - 1); y = rand(); y = y % VID_VSIZE - 1; x1 = rand(); x1 = x1 % 100; y1 = rand(); y1 = y1 % 100; gdiRectangle(x,y,x1,y1,GDI_ROP_COPY); } sysDelayMs(3000); // Demo Circle vidClearScreen(); gdiRectangle(0,0,(VID_PIXELS_X - 1),VID_VSIZE - 1,0); gdiDrawTextEx(180, 40, "ARTEKIT", GDI_ROP_COPY); gdiDrawTextEx(161, 55, "AK-STM32-LKIT", GDI_ROP_COPY); gdiDrawTextEx(165, 70, "CIRCLE DEMO", GDI_ROP_COPY); sysDelayMs(3000); srand(sysTicks); for (i = 0; i < 200; i++) { sysDelayMs(20); x = rand(); x = x % (VID_PIXELS_X - 1); y = rand(); y = y % VID_VSIZE - 1; x1 = rand(); x1 = x1 % 80; gdiCircle(x,y,x1,GDI_ROP_COPY); } sysDelayMs(3000); // Demo Bitmap vidClearScreen(); gdiRectangle(0,0,(VID_PIXELS_X - 1),VID_VSIZE - 1,0); gdiDrawTextEx(180, 40, "ARTEKIT", GDI_ROP_COPY); gdiDrawTextEx(161, 55, "AK-STM32-LKIT", GDI_ROP_COPY); gdiDrawTextEx(165, 70, "BITMAP DEMO", GDI_ROP_COPY); sysDelayMs(3000); x = 100; y = 130; flip = 0; for (i = 0; i < 100; i++) { sysDelayMs(150); if (flip) { flip = 0; gdiBitBlt(NULL,x,y,15,12,(pu8) deBadBoys1,GDI_ROP_COPY); } else { flip = 1; gdiBitBlt(NULL,x,y,15,12,(pu8) deBadBoys2,GDI_ROP_COPY); } x += 2; } sysDelayMs(3000); vidClearScreen(); gdiRectangle(0,0,(VID_PIXELS_X - 1),VID_VSIZE - 1,0); gdiDrawTextEx(180, 40, "ARTEKIT", GDI_ROP_COPY); gdiDrawTextEx(161, 55, "AK-STM32-LKIT", GDI_ROP_COPY); gdiDrawTextEx(115, 75, "ARM CORTEX DEVELOPMENT BOARDS", GDI_ROP_COPY); gdiDrawTextEx(156, 90, "WWW.ARTEKIT.EU", GDI_ROP_COPY); gdiDrawTextEx(141, 120, "FREE GRAPHIC ENGINE", GDI_ROP_COPY); gdiDrawTextEx(165, 130, "SOURCE CODE", GDI_ROP_COPY); while (1) {}; }