用c语言实现键盘画图

用c语言实现键盘画图

ID:12725503

大小:22.14 KB

页数:6页

时间:2018-07-18

用c语言实现键盘画图_第1页
用c语言实现键盘画图_第2页
用c语言实现键盘画图_第3页
用c语言实现键盘画图_第4页
用c语言实现键盘画图_第5页
资源描述:

《用c语言实现键盘画图》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、用C语言实现键盘画图1.引言笔者在开发县级电网调度自动化系统的过程中,碰到一个要绘制电力系统一次接线图的问题。由于电力系统一次接线图比较复杂,图上有一些特殊的符号,象变压器符号、开关符号等等,用一般的编程方法来绘制比较困难,因此,笔者用C语言开发了一个手工绘制电力系统一次接线图的键盘绘图程序,使用该程序绘制的一次接线图符合用户需求,效果良好。2.使用方法程序中定义了几个特殊键:"V”:画笔提起"W”:开始画图"R”:开始擦图"S”:当前图形存入文件"E”:调出已有文件"C”:画圆 程序一运行,屏幕上出

2、现一个黄色的边框来设定画图的区域,区域中间出现提起的画笔符号,当按下”W“键时,画笔符号变为,此时可移动方向键(上、下、左、右、左上、左下、右上、右下)来画图;当按下”R“键时,画笔符号变为,此时可移动方向键来擦图;在画图过程中,按下“C”键,可画出一个半径为20个象素点的圆;当结束画图时,按下“S”键,将画好的图形存盘;按下“E”键可调出已有的图形进行编辑。3.源程序清单#include"graphics.h"#include"stdio.h"#include"fcntl.h"#include"st

3、dlib.h"main()voidsave(),load();void*wg,*rg,*vg,*fy;intdriver,mode;intc=RED;intx=320,y=225;intx1,y1,x2,y2;intk,k1,k2;/*initializegrapher*/detectgraph(&driver,&mode);initgraph(&driver,&mode,"c:tc");/*writethepen*/bar(200,10,206,16);line(203,7,200,10);lin

4、e(203,7,206,10);line(243,7,240,16);line(243,7,246,16);line(283,7,280,10);line(283,7,286,10);line(283,7,283,16);/*savethepen*/wg=malloc(imagesize(200,7,206,16));rg=malloc(imagesize(240,7,246,16));vg=malloc(imagesize(280,7,286,16));fy=malloc(imagesize(200

5、,7,206,16));getimage(200,7,206,16,wg);getimage(240,7,246,16,rg);getimage(280,7,286,16,vg);cleardevice();/*writethebox*/setcolor(YELLOW);rectangle(4,19,637,447);x1=x-3;y1=y+1;x2=x+3;y2=y+10;getimage(x1,y1,x2,y2,fy);putimage(x1,y1,vg,XOR_PUT);/*receivethe

6、command*/for(;;)while(bioskey(1)==0);k=bioskey(0);putimage(x1,y1,fy,AND_PUT);if(((k&0x00ff)

7、0x00)==0)k1=k&0xff?0:k>>8;/*k1isthespecialkeyvalue*/elsek2=k&0x00ff;/*k2isthenon-specialkeyvalue*/if(((k&0x00ff)

8、0x00)==0)/*Specialkey*/switch(k1)case45:restorec

9、rtmode();exit(0);case72:if(y>20)y=y-1;break;case75:if(x>5)x=x-1;break;case77:if(x<636)x=x+1;break;case80:if(y<446)y=y+1;break;case71:if((x>5)&&(y>20))x=x-1;y=y-1;break;case79:if((x>5)&&(y<446))x=x-1;y=y+1;break;case73:if((x<636)&&(y>20))x=x+1;y=y-1;brea

10、k;case81:if((x<636)&&(y<446))x=x+1;y=y+1;break;x1=x-3;y1=y+1;x2=x+3;y2=y+10;getimage(x1,y1,x2,y2,fy);/*non-specialkey*/switch(k2)case118:/*'v'*/case86:/*'V'*/putimage(x1,y1,vg,OR_PUT);break;case119:/*'w'*/case87:/*'W'*/putimage(x

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。