C語言編寫圖形程式// http://lcrystal.spaces.live.com/blog/cns!13dfc6235bbfb72c!128.entry

來源:互聯網
上載者:User
TC中使用圖形函數的基本知識

                   
    我很想成一個知識很豐富的程式員,可所有的知識都要一點一點的學。   平時唯寫過作業式的程式的中國教育模式下的大學生來說,根本就沒有任何用圖形的經曆,我甚至連要使用圖形學要什麼標頭檔都不知道。在網上查了些文章,最後找到了王大剛老師的<C語言編程寶典>這篇文章介紹了許多很有用的基本知識。

    首先就是如果要在TC中使用圖形化介面,需要"#include<graphics.h>",並且在main函數的開頭寫上:
void main()
{
        int gdriver,gmode;
        detectgraph(& gdriver,& gmode)
        initgraph(& gdriver, & gmode,"c:\\turboc2");
}
在結尾處寫上: closegraph(); 而且如果希望程式運行完畢並不立即結束,最好是在程式的最後寫上:getch();
    另外可以使用如下的函數來改變圖形線條的顏色和背景顏色。
setcolor(int);setbkcolor(int);中數值含義為:
  BLACK          0       黑色           DARKGRAY             8       深灰
  BLUE            1       蘭色           LIGHTBLUE            9       深蘭
  GREEN          2       綠色           LIGHTGREEN        10      淡綠
  CYAN            3       青色           LIGHTCYAN         11      淡青
  RED              4       紅色           LIGHTRED            12      淡紅
  MAGENTA      5       洋紅           LIGHTMAGENTA   13      淡洋紅
  BROWN         6       棕色           YELLOW              14      黃色
  LIGHTGRAY    7       淡灰           WHITE                15      白色

cleardevice();可以清楚螢幕內容。
    現在介紹一些畫圖形的函數。
putpixel(int x, int y, int color); 畫點。其中x,y是該點的橫縱座標。在TC中螢幕是按640*480的解析度來計算座標的。

line(int x0,int y0,int x1,int y1); 畫一條從點(x0, y0)到(x1, y1)的直線。

circle(int x, int y, int radius); 以(x, y)為圓心, radius為半徑, 畫一個圓。

arc(int x, int y, int stangle, int endangle, int radius); 以(x, y)為圓心, radius為半徑, 從stangle開始到endangle結束(用度表示) 畫一段圓弧線。

rectangle(int x1, int y1, int x2, inty2); 以(x1, y1)為左上方, (x2, y2)為右下角畫一個矩形框。

drawpoly(int numpoints, int far *polypoints); 畫一個頂點數為numpoints,各頂點座標由polypoints 給出的多邊形。polypoints整型數組必須至少有2倍頂點數個無素。每一個頂點的座標都定義為x, y, 並且x在前。值得注意的是當畫一個封閉的多邊形時, numpoints 的值取實際多邊形的頂點數加一, 並且數組polypoints中第一個和最後一個點的座標相同。

bar(int x1, int y1, int x2, int y2); 確定一個以(x1, y1)為左上方, (x2, y2)為右下角的矩形視窗,再按規定圖模和顏色填充。

bar3d(int x1, int y1, int x2, int y2,   int  depth,   int topflag);當topflag為非0時, 畫出一個三維的長方體。當topflag為0時, 三維圖形不封頂, 實際上很少這樣使用。

    下面舉個例子,我們來畫一個長方形。我們可以這麼做,先用setfillstyle(1,2);再用bar3d(10,10,20,20,4,1)就用2的顏色畫了一個長方形。(其中的1,2下面我再說明。)我們還可以這麼做,用rectangle(10,10,20,20)但還需要用floodfill(15,15,3)來填充。(假設前景色彩為3)。setfillstyle(int,int)中的兩個參數是這樣規定的:
setfillstyle(int pattern, int color);
pattern的設定如下:
       EMPTY_FILL            0        以背景顏色填充
       SOLID_FILL              1        以實填充
       LINE_FILL                2        以直線填充
       LTSLASH_FILL          3        以斜線填充(陰影線)
       SLASH_FILL              4        以粗斜線填充(粗陰影線)
       BKSLASH_FILL          5        以粗反斜線填充(粗陰影線)
       LTBKSLASH_FILL       6        以反斜線填充(陰影線)
       HATCH_FILL              7        以直方網格填充
       XHATCH_FILL            8        以斜網格填充
       INTTERLEAVE_FILL    9        以間隔點填充
       WIDE_DOT_FILL      10       以稀疏點填充
       CLOSE_DOS_FILL     11       以密集點填充
       USER_FILL               12       以使用者定義式樣填充
color就是畫圖的邊框顏色,其數值含義同前面介紹的定義一樣。
    最後是如何在圖形介面輸出文字,需要"#include<conio.h>"然後加上outtextxy(int x,int y,char * s);s為要輸出的字串。其中有可能要用到sprintf(s, "You want to show the number is %d", num); 這裡s應是字串指標或數組, num為整型變數。

    就寫這些了,如果還想瞭解更多的內容請參看王大剛老師的<C語言編程寶典>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.