- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
原创文章来源:
原创文章来源:
C语言开发的一个画图程序
在开发县级电网调度自动化系统的过程中,碰到一个要绘制电力系统一次接线图的问题.由于电力系统一次接线图比较复杂,用一般的编程方法来绘制比较困难,因此,笔者用C语言开发了一个手工绘制电力系统一次接线图的键盘绘图程序,使用该程序绘制的一次接线图符合用户需求,效果良好.
一、使用方法
程序中定义了几个特殊键:
\V:画笔提起
\W:开始画图
\R:开始擦图
\S:当前图形存入文件
\E:调出已有文件
\C:画圆
程序一运行,屏幕上出现一个黄色的边框来设定画图的区域,区域中间出现提起的画笔符号 ,当按下W键时,画笔符号变为 ,此时可移动方向键(上、下、左、右、左上、左下、右上、右下)来画图;当按下R键时,画笔符号变为 ,此时可移动方向键来擦图;在画图过程中,按下C键,可画出一个半径为20个象素点的圆;当结束画图时,按下S键,将画好的图形存盘;按下E键可调出已有的图形进行编辑.
二、源程序清单
# include \graphics.h\
# include \stdio.h\
# include \fcntl.h\
# include \stdlib.h\
main()
void save(),load();
void *wg,*rg,*vg,*fy;
int driver,mode;
int c=RED;
int x=320,y=225;
//
int x1,y1,x2,y2;
int k,k1,k2;
/* initialize grapher */
detectgraph(driver,mode);
initgraph(driver,mode,\c:\\tc\);
/* write the pen */
bar(200,10,206,16);
line(203,7,200,10);
line(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);
/* save the pen */
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,7,206,16));
getimage(200,7,206,16,wg);
getimage(240,7,246,16,rg);
getimage(280,7,286,16,vg);
cleardevice();
/* write the box */
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);
/* receive the command */
for (;;)
while (bioskey(1)==0);
k=bioskey(0);
putimage(x1,y1,fy,AND_PUT);
if (((k0x00ff)|0x00)==0)
k1=k0xff?0:k8; /* k1 is the specialkey value */
else
k2=k0x00ff; /* k2 is the non-specialkey value */
if (((k0x00ff)|0x00)==0) /* Special key */
switch(k1)
case 45:
restorecrtmode();
exit(0);
case 72:
if (y20)
y=y-1;
break;
case 75:
if (x5)
x=x-1;
break;
case 77:
if (x636)
x=x+1;
break;
case 80:
if (y446)
y=y+1;
break;
case 71:
if ((x5)(y20))
x=x-1;
y=y-1;
break;
case 79:
if ((
您可能关注的文档
最近下载
- 违章驾驶员交通安全培训精品课件.pptx
- Panasonic松下电器卫浴产品 电子坐便器CH2N615WSC_2N625GYC用户手册.pdf
- 人教部编版四年级下册语文第五单元教案设计(含交流平台习作例文和习作教案).doc
- 小学数学_青岛版六年级下册数学智慧广场“鸡兔同笼”问题教学设计学情分析教材分析课后反思.doc
- 2023年南京特殊教育师范学院特殊教育专业《普通心理学》期末试卷A(有答案).docx VIP
- 猪的信号(育肥猪).doc
- 机械设计基础(第六版)杨可桢课后习题答案.pdf
- 紧密型县域医疗卫生共同体消毒供应中心运营指南(2020年版 医联体建设).docx
- 《潍坊港总体规划》报告.doc
- 巧用仪式感提升高中阶段班级管理.docx VIP
文档评论(0)