使用EGE设计绘制多边形的程序左键绘制,右键填充
时间: 2024-01-19 17:25:32 浏览: 132
好的,以下是使用EGE设计绘制多边形并实现左键绘制、右键填充的程序示例:
```C++
#include <graphics.h> // 引入EGE图形库的头文件
int main() {
initgraph(640, 480); // 初始化窗口
int x, y, flag = 0;
POINT pts[100]; // 定义多边形顶点数组
while (true) {
if (kbhit()) { // 检测键盘事件
if (getch() == VK_ESCAPE) break; // 如果按下Esc键退出程序
}
if (MouseHit()) { // 检测鼠标事件
MOUSEMSG m = GetMouseMsg();
if (m.uMsg == WM_LBUTTONDOWN) { // 如果左键按下
if (flag == 0) { // 如果是第一个顶点,直接记录坐标
x = m.x;
y = m.y;
pts[0].x = x;
pts[0].y = y;
flag = 1;
} else { // 如果是其他顶点,绘制线段并记录坐标
line(x, y, m.x, m.y);
x = m.x;
y = m.y;
pts[flag].x = x;
pts[flag].y = y;
flag++;
}
} else if (m.uMsg == WM_RBUTTONDOWN) { // 如果右键按下
if (flag > 0) { // 如果已经绘制了多边形
setfillcolor(RGB(255, 0, 0)); // 设置填充颜色为红色
fillpolygon(pts, flag); // 填充多边形
}
}
}
}
closegraph(); // 关闭窗口
return 0;
}
```
具体实现过程如下:
1. 引入EGE图形库的头文件;
2. 初始化窗口;
3. 定义多边形顶点数组和标记变量;
4. 进入无限循环,不断检测键盘和鼠标事件;
5. 如果按下Esc键,退出程序;
6. 如果左键按下,如果是第一个顶点,直接记录坐标;如果是其他顶点,绘制线段并记录坐标;
7. 如果右键按下,如果已经绘制了多边形,设置填充颜色为红色并填充多边形;
8. 关闭窗口。
注意,本程序中只能绘制凸多边形,如果需要绘制凹多边形,需要进行额外的处理。
阅读全文