/* * aclock - ascii clock for Windows Console * * Copyright (c) 1994-2010 by Antoni Sawicki * Version 2.1 (win32); Mountain View, November 2010 * * Compile (LCC) : lc -O aclock-win32.c -o aclock.exe -s * Compile (MSVC): cl aclock-win32.c * */ #include #include #include #ifndef M_PI #define M_PI 3.14159265358979323846 #endif HANDLE hConsole; CONSOLE_SCREEN_BUFFER_INFO console_info; void cls(void){ COORD home = {0,0}; DWORD size; int wchars; size = console_info.dwSize.X * console_info.dwSize.Y; FillConsoleOutputCharacter(hConsole, ' ', size, home, &wchars); } void draw_point(int x, int y, char p){ COORD cursor_position; int wchars; cursor_position.X = x; cursor_position.Y = y; SetConsoleCursorPosition(hConsole, cursor_position); WriteConsole(hConsole, &p, 1, &wchars, NULL); } void draw_circle(int hand_max, int sYcen, int sXcen, int FontHW, int hour){ int x,y,r; char c; for(r=0;r<60;r++){ x=cos(r*M_PI/180*6)*hand_max*FontHW+sXcen; y=sin(r*M_PI/180*6)*hand_max+sYcen; switch (r) { case 0: case 5: case 10: case 15: case 20: case 25: case 30: case 35: case 40: case 45: case 50: case 55: c='o'; break; default: c='.'; break; } draw_point(x,y,c); } } void draw_hand(int minute, int hlenght, char c, int sXcen, int sYcen, int FontHW){ int x,y,n; float r=(minute-15)*(M_PI/180)*6; for(n=1; n