EasyX 是针对C++的图形库,可以帮助C语言初学者快速上手图形和游戏编程。
比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练习图形学的各种算法,等等。总之,这是一个很强大的图形库。
通过此库设计了一个颜色画板!
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
#include<graphics.h> #include <iostream>
using namespace std;
void box(); int fill();
int main(void) { initgraph(640, 480); box(); fill(); closegraph(); return 0; }
void box() { int color[9] = { BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, YELLOW, WHITE }; setlinecolor(LIGHTGRAY); for (int i = 0; i <= 16; i++) { line(i * 30 + 80, 40, i * 30 + 80, 280); if (i <= 8) line(80, i * 30 + 40, 560, i * 30 + 40); } for (int i = 0; i <= 9; i++) { line(i * 50 + 95, 350, i * 50 + 95, 400); if (i < 2) { line(95, i * 50 + 350, 545, i * 50 + 350); } } for (int i = 0; i < 9; i++) { setfillcolor(color[i]); floodfill(i * 50 + 100, 375, LIGHTGRAY); } }
int fill() { MOUSEMSG m; int whichcolor = BLACK; while (true) { m = GetMouseMsg(); if (m.uMsg == WM_LBUTTONDOWN) { if (m.y >= 350 && m.y <= 400 && m.x >= 145 && m.x <=545) { whichcolor = getpixel(m.x, m.y); } if (m.y >= 40 && m.y <= 280 && m.x >= 110 && m.x <= 560) { setfillcolor(whichcolor); floodfill(m.x, m.y, LIGHTGRAY); } } if (m.uMsg == WM_RBUTTONDOWN) { TCHAR s[] = _T("即将退出,请稍后......"); settextcolor(LIGHTBLUE); outtextxy(320 - textwidth(s)/2 , 315 - textheight(s)/2, s); Sleep(1000); for (int j = 0; j < 600; j++) { outtextxy(j, 100, s); Sleep(20); } return 0; } } }
|