mouse_msg结构体:用于保存鼠标消息
有关其具体声明和成员介绍及其他键盘鼠标输入函数可参阅
https://xege.org/manual/api/input/index.htm
橡皮条技术(以直线为例):
- 选择第一个线段端点
- 光标移动时从初始化拉出一线段
- 线段随光标移动直到选定第二个端点
下面是运用橡皮条技术绘制直线的代码:
#include <graphics.h>
#include <stdio.h>
mouse_msg msg = {0};
void line1(void)
{
int flag1=0,x0,y0,x1,y1;
for ( ; is_run(); delay_fps(350))
{
while(mousemsg())
{
msg=getmouse();
}
if(msg.is_down() && flag1==0)
{
flag1=1;
x0=msg.x;
y0=msg.y;
x1=x0;
y1=y0;
}
if(msg.is_move() && flag1==1)
{
setcolor(BLACK);
line(x0,y0,x1,y1);
x1=msg.x;
y1=msg.y;
setcolor(WHITE);
line(x0,y0,x1,y1);
}
if(msg.is_up() && flag1==1)
{
setcolor(BLACK);
line(x0,y0,x1,y1);
x1=msg.x;
y1=msg.y;
setcolor(WHITE);
line(x0,y0,x1,y1);
flag1=0;
}
if(msg.is_right())
{
break;
}
}
}
int main()
{
initgraph(1200, 1000);
line1();
closegraph();
return 0;
}