C語言編輯畫圖程序的技巧
C語言編輯畫圖程序是什麼呢?大家知道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 (((k&0x00ff)|0x00)==0)
k1=k&0xff?0:k>>8; /* k1 is the specialkey value */
else
k2=k&0x00ff; /* k2 is the non-specialkey value */
if (((k&0x00ff)|0x00)==0) /* Special key */
switch(k1)
case 45:
restorecrtmode();
exit(0);
case 72:
if (y>20)
y=y-1;
break;
case 75:
if (x>5)
x=x-1;
break;
case 77:
if (x<636)
x=x+1;
break;
case 80:
if (y<446)
y=y+1;
break;
case 71:
if ((x>5)&&(y>20))
x=x-1;
y=y-1;
break;
case 79:
if ((x>5)&&(y<446))
x=x-1;
y=y+1;
break;
case 73:
if ((x<636)&&(y>20))
x=x+1;
y=y-1;
break;
case 81:
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-special key */
switch(k2)
case 118: /* 'v' */
case 86: /* 'V' */
putimage(x1,y1,vg,OR_PUT);
break;
case 119: /* 'w' */
case 87: /* 'W' */
putimage(x1,y1,wg,OR_PUT);
putpixel(x,y,c);
break;
case 114: /* 'r' */
case 82: /* 'R' */
putimage(x1,y1,rg,OR_PUT);
putpixel(x,y,BLACK);
break;
case 115: /* 's' */
case 83: /* 'S' */
save("");
break;
case 101: /* 'e' */
case 69: /* 'E' */
load("");
break;
case 99: /*'c'*/
case 67: /*'C'*/
setcolor(RED);
circle(x,y,20);
break;
default:continue;
/* function for screen picture save
*/
void save(char *fname)
FILE *fp;
int i;
register long j;
char far *ptr;
fp=fopen(fname,"wb");
for(i=0;i<4;i++)
outportb(0x3CE,4);
outportb(0x3CF,i);
ptr=(char far *) 0xA0000000L;
for (j=0;j<38400L;j++)
putc(*ptr,fp);
ptr++;
fclose(fp);
outportb(0x3CF,0);
/* function for screen picture display
*/
void load(char *fname)
FILE *fp;
register int i;
int k4=1;
register long j;
char far *ptr;
fp=fopen(fname,"rb");
for (i=0;i<4;i++)
outportb(0x3C4,2);
outportb(0x3C5,k4);
ptr=(char far *)0xA0000000L;
for (j=0;j<38400L;j++)
*ptr=getc(fp);
ptr++;
k4*=2;
fclose(fp);
outportb(0x3C5,0xF);
三、結束語
該程序在Turbo C 2.0環境下運行通過,使用效果良好.可以根據具體需要,對該程序進行擴充,以增加繪圖功能.
相關文章
-
C語言程序設計學習技巧
C語言程序設計是計算機專業和非計算機專業的一門技術基礎課程,也是程序設計的啓蒙語言課程。下面是小編整理的C語言程序設計學習技巧,希望可以幫助大家! 【C語言程序設計學習技巧】無論哪所大學的計算機專科和本科都 -
二級C語言程序設計技巧
上班族的女生在選擇髮型的時候,都會選擇一些很好看的髮型,要選擇一些OL氣質的髮型,現在我們就一起來欣賞一下這五款很好看的上班族女性的髮型吧,這些髮型是很有魅力的,這些捲髮髮型都是可以凸顯了職業女性的氣質。上班族的 -
c語言實現多線程動畫程序範例
如何用c語言實現多線程動畫程序呢?想要了解的朋友,以下是爲大家分享的`c語言實現多線程動畫程序的範例,供大家參考借鑑,歡迎瀏覽!該程序是利用opengl圖形庫與fmod音頻庫寫的一個簡單3d動畫程序。該程序在vs下運行良好,若缺 -
動畫設計中的原畫編輯技巧
動畫是活的視覺表現形式,而原畫在動畫製作中處於核心地位,原畫創作又是決定動畫片動作質量好壞最重要的基礎工作。所以原畫編輯就顯得尤爲重要,原畫編輯就是根據一定的思想意圖,以相應的信息或材料爲基礎,進行優選、創意 -
等級考試二級C語言程序設計技巧
在許多應用軟件運行時都帶有命令行參數,其實這些命令行參數在C語言編寫的程序中也可以實現,靈活地運用命令行參數進行處理可以有效地提高程序的運行效率,收到事半功倍的效果。 C語言中有關命令行參數涉及到程序的 -
C語言編程程序的內存如何佈局
重點關注以下內容:C語言程序在內存中各個段的組成、C語言程序連接過程中的特性和常見錯誤、C語言程序的運行方式。下面我們一起來看看C語言編程程序的內存如何佈局。歡迎大家閱讀! C語言編程程序的內存如何佈局 -
C語言高效編程的小技巧
凌亂美女生髮型其實並不是真的凌亂啦!因爲凌亂只是一個說法,也可以說是一種打造方法,其實在凌亂美女生髮型就是一種隨性浪漫的蓬鬆髮型呢!一款凌亂美女生髮型也可以有慵懶的感覺,讓人十分着迷呢!凌亂美女生髮型通過這款偏分 -
計算機一級《Excel表格的基本操作》圖形和圖表編輯技巧
Microsoft Excel是微軟公司的辦公軟件Microsoft office的組件之一,是由Microsoft爲Windows和Apple Macintosh操作系統的電腦而編寫和運行的一款試算表軟件。以下是爲大家分享的計算機一級《Excel表格的基本操作》圖形 -
C語言編寫程序的優點
二十世紀八十年代,爲了避免各開發廠商用的C語言語法產生差異,由美國國家標準局爲C語言訂定了一套完整的國際標準語法,稱爲ANSI C,作爲C語言最初的標準。下面是關於C語言編寫程序的優點,歡迎參考!(1)程序結構簡潔、緊湊、規 -
C語言編程建議和技巧
Rob Pike 是谷歌公司最著名的軟件工程師之一,曾是貝爾實驗室 Unix 開發團隊成員,Plan 9 操作系統開發的主要領導人,Infeo 操作系統開發的主要領導人。他是締造 Go 語言和 Limbo 語言的核心人物。下面,就和小編一起來看一