网站大量收购闲置独家精品文档,联系QQ:2885784924

C语言开发的一个画图程序.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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 ((

文档评论(0)

anma + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档