在開發縣級電網調度自動化系統的過程中,碰到一個要繪制電力系統一次接線圖的問題。由于電力系統一次接線圖比較復雜,用一般的編程方法來繪制比較困難,因此,用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 (((k&0x00ff)|0x00)==0)
k1=k&0xff?0:k>>8; /* k1 is the specialkey value */
新聞熱點
疑難解答