計算機圖形學 第1章緒論_第1頁
計算機圖形學 第1章緒論_第2頁
計算機圖形學 第1章緒論_第3頁
計算機圖形學 第1章緒論_第4頁
計算機圖形學 第1章緒論_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、計算機圖形學信息與計算機工程學院計算機科學與技術陳巖Email: 辦公地點:信息樓312電話:82191523 資料郵箱:密碼:computer計算機圖形學p授課學時:48學時 (40理論+8實驗)p考核方式:l平時20%+實驗30%+期末50%p教材或參考書: 計算機圖形學實用技術(第3版) 陳元琰 清華大學出版社 2012計算機圖形學原理及算法教程 和青芳 清華大學出版社 2006教學要求o了解圖形系統的框架及其涉及的軟件、硬件技術;o了解圖形學的基本問題,掌握圖形學的基本概念、方法與算法;o對與圖形相關的應用及當前的研究熱點有一個初步的認識;o具有一定實踐體會和相關的編程能力。第1章 緒

2、論1.1 什么是計算機圖形學1.2 研究內容1.3 與相關學科的關系1.4 發(fā)展簡史1.5 計算機圖形系統1.6 應用領域1.7 C語言常用圖形函數1.1 什么是計算機圖形學 o國際標準化組織國際標準化組織(ISO)(ISO)的定義:的定義:計算機圖形學是研究通過計算機將數據轉換為圖形,并在專門顯示設備上顯示的原理、方法和技術的學科。p 計算機圖形學計算機圖形學是計算機科學中,最為活躍、是計算機科學中,最為活躍、得到廣泛應用的分支之一。得到廣泛應用的分支之一。圖形以及構成圖形的要素o圖形:計算機圖形學的研究對象n能夠在人的視覺系統中形成視覺印象的客觀對象都稱為圖形。n包括自然景物、拍攝到的圖片

3、、用數學方法描述的圖形用數學方法描述的圖形等等。o構成圖形的要素:n幾何要素幾何要素(幾何屬性):刻畫對象的輪廓、形狀。如:點、線、面、體。n非幾何要素非幾何要素(視覺屬性):刻畫對象的顏色、材質等。如明暗、灰度、色彩、紋理、透明性、線型、線寬計算機中表示圖形的方法o點陣表示(位圖)n用具有灰度或顏色信息的點陣來表示圖形。n簡稱為圖像(數字圖像)。o參數表示(矢量圖)n由圖像的形狀參數(方程或分析表達式的系數,線段的端點坐標等)+屬性參數(顏色、線型等)來表示圖形。n簡稱為圖形。1.2 研究內容研究內容o如何在計算機中如何在計算機中表示圖形表示圖形、以及利用計算、以及利用計算機進行機進行圖形的

4、計算、處理和顯示的相關原圖形的計算、處理和顯示的相關原理與算法理與算法,構成了計算機圖形學的主要研,構成了計算機圖形學的主要研究內容。究內容。o圖形硬件、圖形標準、圖形交互技術、光柵圖形生成算法、曲線曲面造型、實體造型、自然景物仿真、真實感圖形計算與顯示算法,以及科學計算可視化、計算機動畫、虛擬現實等。本課程主要內容o圖形硬件、圖形標準、圖形交互技術;(第一章)o基本圖形元素的生成算法;(第二章)o圖形元素的幾何變換;(第三章)o樣條曲線和樣條曲面的插值、擬合、拼接、光順、整體和局部修改;(第四章)o自然景物的模擬生成、三維幾何造型;(第五章)o真實感圖形的生成。(第六章)1.3 與計算機圖形

5、學相關的學科o計算機輔助幾何設計計算機輔助幾何設計o數字圖像處理數字圖像處理o計算機視覺和模式識別計算機視覺和模式識別1.3 與計算機圖形學相關的學科計算機輔助幾何設計計算機輔助幾何設計p 研究幾何形體在計算機中的表示、分析,研究怎樣方便靈活地建立幾何形體的數學模型,提高算法效率,在計算機內更好地存儲和管理這些模型等,研究曲線、曲面的表示、生成、拼接、數據擬合。1.3 與計算機圖形學相關的學科o研究如何對一幅連續(xù)圖像取樣、量化以產生數字圖像,如何對數字圖像做各種變換以方便處理。數字圖像處理數字圖像處理o如何濾去圖像中的無用噪聲,如何壓縮圖像數據以便存儲和傳輸,圖像邊緣提取,特征增強和提取。1.

6、3 與計算機圖形學相關的學科o圖形學的逆過程,分析和識別輸入的圖像并從中提取二維或三維的數據模型(特征)。手寫體識別、機器視覺。計算機視覺和模式識別計算機視覺和模式識別1.3 與計算機圖形學相關的學科數字圖像數據模型圖形生成(計算機圖形學)特征(模型)提取計算機視覺,模式識別模型變換(計算機輔助幾何設計)圖像變換(圖像處理)模型變換(計算機輔助幾何設計) 1.4 發(fā)展簡史 o醞釀期(50年代)n1950年, MIT,第一臺圖形顯示器 ,旋風I號(Whirlwind I)計算機的附件o類似于示波器的陰極射線管 (CRT) n50年代末期,MIT林肯實驗室,在“旋風”計算機上開發(fā)SAGE空中防御系

7、統o光筆,交互式圖形生成技術。1.4 發(fā)展簡史o萌芽期(60年代) 1962年,美國MIT林肯實驗室的Ivan.E.Sutherland發(fā)表博士論文“Sketchpad:一個人機通信的圖形系統”的博士論文。o首次使用Computer Graphics術語o計算機圖形學之父1.4 發(fā)展簡史o發(fā)展期(70年代)n基于電視技術的光柵掃描顯示器的出現,圖形學進入了第一個興盛的時期,并開始出現實用的CAD圖形系統。n眾多商品化軟件的出現,使圖形標準化問題也被提上議程。n74年,美國計算機學會成立圖形標準化委員會(ACM SIGGRAPH)1.4 發(fā)展簡史o普及期(80年代)n80年代,超大規(guī)模集成電路的

8、發(fā)展,奠定了物質基礎,工作站的出現,促進了圖形學的發(fā)展。o提高增強期(90年代)n朝著標準化、集成化和智能化的方向發(fā)展n國際標準化組織(ISO)公布的圖形標準也越多、且更加成熟o目前研究情況: 中國計算機圖形學研究會/ 國際計算機輔助設計和計算機圖形學會議 主要期刊:CADCAGD計算機輔助設計與圖形學學報 浙江大學:CAD&CG國家重點實驗室 北京大學計算機圖形學研究室:圖形軟件與可視化、人機交互與用戶界面、虛擬現實與多媒體等。 山東大學:信息處理與安全研究室,研究室下設兩個課題組:幾何設計與信息可視化課題組、信息安全課題組。其中SCI文章10篇,EI文章15篇。 香港大學:計算機圖

9、形學和計算機視覺研究室 哈爾濱工業(yè)大學:馬培軍、蘇曉紅 1.4 發(fā)展簡史 o浙江大學:鮑虎軍金小剛1.5 計算機圖形系統o計算機圖形系統硬件n主機l強大的浮點運算能力l強大的顯示能力l個人計算機、圖形工作站n輸入輸出設備l輸入設備:鍵盤、鼠標、數字化儀和掃描儀。l輸出設備:打印機、面向圖像的彩色打印機和面向線條的筆式繪圖儀。1.5 計算機圖形系統o計算機圖形系統軟件n系統軟件l操作系統l程序設計語言:C/C+n應用軟件lAutoCAD、CorelDRAW、Freehand、3DStudio和3DMax、MAYA等。1.5 計算機圖形系統o計算機圖形標準n基本圖形交換規(guī)范IGESn應用程序與圖形

10、軟件包的接口lGKS、GKS-3D和PHIGSn圖形設備接口標準lCGIn圖形文件標準lCGM1.6 應用領域(1)圖形用戶界面)圖形用戶界面(2)計算機輔助設計與制造)計算機輔助設計與制造工業(yè)領域工業(yè)領域CAD/CAM是CG在工業(yè)界最廣泛、最活躍的應用領域。飛機、汽車、船舶、機電、輕工、服裝的外形設計集成電路、印刷電路板的設計建筑設計基于工程圖紙的三維形體重建 孫家廣譚建榮(a)工程圖)工程圖(b)線框圖)線框圖 (c)實體圖)實體圖 (2)計算機輔助設計與制造)計算機輔助設計與制造工業(yè)領域工業(yè)領域基于工程圖紙的三維形體重建Boeing 777, 無紙設計,無紙設計,無紙制造(2)計算機輔助

11、設計與制造)計算機輔助設計與制造工業(yè)領域工業(yè)領域 在飛機工業(yè)中,美國波音飛機公司已用有關的CAD系統實現波音777大型客機的整體設計和模擬,其中包括飛機外型、內部零部件的安裝和檢驗。使其設計制造成本下降30%以上 。 建筑和環(huán)境設計建筑和環(huán)境設計(2)計算機輔助設計與制造)計算機輔助設計與制造工業(yè)領域工業(yè)領域建筑和環(huán)境設計建筑和環(huán)境設計(2)計算機輔助設計與制造)計算機輔助設計與制造工業(yè)領域工業(yè)領域足以亂真的由計算機制作的建筑效果圖,現在已成為建筑設計不可缺少的 技術。建筑和環(huán)境設計建筑和環(huán)境設計1.6 應用領域(3)計算機動畫計算機動畫商業(yè)領域商業(yè)領域n電腦游戲電腦游戲n卡通動畫片卡通動畫片

12、n影視特技影視特技電腦游戲電腦游戲(3)計算機動畫)計算機動畫商業(yè)領域商業(yè)領域o由世界著名的游戲公司暴雪出品由世界著名的游戲公司暴雪出品的的3D網絡游戲網絡游戲魔獸世界魔獸世界自自其先后在北美、歐洲和韓國上市其先后在北美、歐洲和韓國上市以來,打破了多項紀錄,更被中以來,打破了多項紀錄,更被中國游戲玩家公認為國游戲玩家公認為“2005年最年最受期待的游戲受期待的游戲”。o據悉,在據悉,在魔獸世界魔獸世界限量公開限量公開測試報名首日的第一個小時內,測試報名首日的第一個小時內,就有就有10萬玩家激情參與!萬玩家激情參與! 卡通動畫卡通動畫(3)計算機動畫)計算機動畫商業(yè)領域商業(yè)領域1928至1938

13、年間米老鼠和唐老鴨形象誕生獅子王玩具總動員美女與野獸精靈鼠小弟寶蓮燈(3)計算機動畫)計算機動畫商業(yè)領域商業(yè)領域影視制作影視制作 計算機動畫技術還被廣泛用于電影電視中的特計算機動畫技術還被廣泛用于電影電視中的特技鏡頭的制作,產生以假亂真而又驚險的特技效技鏡頭的制作,產生以假亂真而又驚險的特技效果,如模擬大樓被炸、橋梁坍塌等。果,如模擬大樓被炸、橋梁坍塌等。影片影片珍珠港珍珠港劇照。劇照。由電腦制作出的災難由電腦制作出的災難景象。景象。1.6 應用領域(4)計算機藝術計算機藝術藝術領域藝術領域(i)計算機數字圖像合成藝術(4)計算機藝術計算機藝術藝術領域藝術領域(ii)計算機圖形設計藝術)計算機

14、圖形設計藝術 1.5 應用領域(4)計算機藝術計算機藝術藝術領域藝術領域(iii)工業(yè)產品設計)工業(yè)產品設計 1.5 應用領域(4)計算機藝術計算機藝術藝術領域藝術領域(iV)廣告設計)廣告設計 1.5 應用領域(4)計算機藝術計算機藝術藝術領域藝術領域(V)紡織品和服裝設計)紡織品和服裝設計 1.5 應用領域(4)計算機藝術計算機藝術藝術領域藝術領域(Vi)鋼筆畫效果)鋼筆畫效果 1.5 應用領域 鋼 筆 素 描 產鋼 筆 素 描 產生于中世紀,生于中世紀,從從19世紀開始世紀開始成為一門藝術,成為一門藝術,然而用計算機然而用計算機模擬鋼筆繪畫模擬鋼筆繪畫卻是卻是20世紀世紀90年代的事情。

15、年代的事情。華盛頓大學的 Georges Winkenblach繪制的壺和碗(Siggraph96) 1.6 應用領域(5)過程控制過程控制n石油化工、金屬冶煉、電網控制的工作人員根據設備關鍵部位的傳感器送來得圖像和數據,對設備運行過程進行監(jiān)控n機場、鐵路的調度人員通過計算機產生運行狀態(tài)信息來調整空中交通和鐵路運輸1.6 應用領域(6)系統環(huán)境模擬系統環(huán)境模擬 飛行模擬艙用光柵掃描器產生駕駛員在駕駛艙中預期所能看到的景象,對飛行員進行單飛前的地面訓練和飛機格斗訓練等1.6 應用領域(7)事務和商務數據的圖形顯示事務和商務數據的圖形顯示n繪制表示經濟信息的各類二、三維統計管理圖表n信息可視化:信

16、息流量,商業(yè)統計數據,股市行情1.6 應用領域(8)地形地貌和自然資源的圖形顯示地形地貌和自然資源的圖形顯示n地理信息系統(GIS)n數字地球,地形數據作為載體,(70)全球信息化.n軍事,政府決策,旅游,資源調查。n地理圖、地形圖、礦藏分布圖、氣象氣流圖、植物分布圖1.6 應用領域(9)科學計算的可視化科學計算的可視化n不同于可視化計算n科學計算可視化是o將科學計算過程中的數據及結果數據轉換為圖像o實際上也包括了工程計算可視化和測量數據可視化o其核心是三維數據場的可視化。n可應用于氣象預報、(CT)醫(yī)學圖象重建、流場、湍流、激波、石油地質勘探、環(huán)境保護、核爆炸模擬、計算流體力學、天體物理、分

17、子生物學、有限元分析、等許多領域。 1.6 應用領域(10)虛擬手術仿真虛擬手術仿真 將醫(yī)用將醫(yī)用CT掃描的數據轉化為三維圖象,并通過掃描的數據轉化為三維圖象,并通過一定的技術生成在人體內漫游的圖象,使得醫(yī)生能夠一定的技術生成在人體內漫游的圖象,使得醫(yī)生能夠看到并準確地判別病人的體內的患處,然后通過碰撞看到并準確地判別病人的體內的患處,然后通過碰撞檢測一類的技術實現手術效果的反饋,幫助醫(yī)生成功檢測一類的技術實現手術效果的反饋,幫助醫(yī)生成功完成手術。完成手術。 (10)虛擬手術仿真o臺灣臺灣pcexpertpcexpert公司研制的公司研制的LSVRLSVR系統逼真地模系統逼真地模擬了腹腔手術,

18、進行過程教學、手術成果檢擬了腹腔手術,進行過程教學、手術成果檢驗等驗等 腹腔虛擬手術系統1.6 應用領域(11)多媒體應用多媒體應用oCAI, 教學娛樂。o在計算機控制下,對多種媒體信息進行生成、操作、表現、存儲、通信、或集成的信息系統o計算機處理的常見媒體:文本、圖形、圖像、語音、音頻、視頻、動畫o特點:媒體的多樣性、操作的交互性、系統的集成性1.7 C語言常用圖形函數o#include “graphics.h” o1、圖形模式的初始化和關閉、圖形模式的初始化和關閉(1)顯示器有兩種顯示模式:文本模式:默認模式,只能顯示文本,圖形函數不能工作。圖形模式:圖形函數可以工作,能夠顯示圖形,并且有

19、專門的文本輸出函數。(2)圖形模式初始化函數void initgraph(int *gdriver, int *gmode, char *path);其中:gdriver和gmode分別表示圖形驅動器和模式, path是指圖形驅動程序所在的目錄路徑。圖形驅動程序由Turbo C出版商提供, 文件擴展名為.BGI。根據不同的圖形適配器有不同的圖形驅動程序。例如對于EGA、VGA 圖形適配器就調用驅動程序EGAVGA.BGI。 1、圖形模式的初始化和關閉、圖形模式的初始化和關閉圖形驅動器、圖形模式的符號常數及對應的分辨率 o例如:設置VGA高分辨率圖形模式int gdriver,gmode;gdr

20、iver=VGA;gmode=VGAHI;initgraph(&gdriver, &gmode, C:/Win-TC/projects);o自動檢測int gdriver=DETECT, gmode;initgraph(&gdriver, &gmode, C:/Win-TC/projects);(3)關閉 Closegraph();程序1#include graphics.hvoid main() int gdriver,gmode; gdriver=DETECT; initgraph(&gdriver,&gmode,C:/Win-TC/proj

21、ects); rectangle(100,100,300,250); getch(); closegraph(); 2、屏幕顏色的設置和清屏函數、屏幕顏色的設置和清屏函數(1)設置背景色: void setbkcolor( int color);(2)設置前景色:void setcolor(int color); 表2有關屏幕顏色的符號常數表符號常數數值 含義 符號常數 數值 含義BLACK0黑色 DARKGRAY 8 深灰BLUE 1蘭色 LIGHTBLUE 9 深蘭GREEN 2 綠色 LIGHTGREEN 10淡綠CYAN 3青色LIGHTCYAN 11淡青RED4紅色LIGHTRED

22、12淡紅MAGENTA 5洋紅 LIGHTMAGENTA 13淡洋紅BROWN6棕色YELLOW 14黃色LIGHTGRAY 7淡灰WHITE15白色2、屏幕顏色的設置和清屏函數、屏幕顏色的設置和清屏函數(3)清除圖形屏幕內容使用清屏函數, 其調用格式如下: void cleardevice(void); 清除前景圖形,不清除背景。 3、基本圖形函數、基本圖形函數(1)畫點(i) void putpixel(int x, int y, int color);(ii) int getpixel(int x, int y); 獲得當前點(x, y)的顏色值。(2)有關坐標位置的函數int getm

23、axx(void); 返回x軸的最大值。int getmaxy(void); 返回y軸的最大值。int getx(void); 返回游標在x軸的位置。int gety(void); 返回游標有y軸的位置。void moveto(int x, int y);移動游標到(x, y)點。void moverel(int dx, int dy);移動游標從現行位置(x, y)移動到(x+dx, y+dy)的位置, 移動過程中不畫點。3、基本圖形函數、基本圖形函數o(3)畫線函數void line(int x0, int y0, int x1, int y1); 畫一條從點(x0, y0)到(x1, y

24、1)的直線。void lineto(int x, int y); 畫一條從現行游標到點(x, y)的直線。void linerel(int dx, int dy); 畫一條從現行游標(x, y)到按相對增量確定的點(x+dx, y+dy)的直線。程序2#include graphics.hmain() int driver=DETECT,mode; initgraph(&driver,&mode,C:/Win-TC/projects); cleardevice(); setbkcolor(WHITE); setcolor(RED); line(10,10,50,10); lin

25、e(50,10,50,50); line(50,50,10,50); line(10,50,10,10); setcolor(GREEN); moveto(110,110); lineto(150,110); lineto(150,150); lineto(110,150); lineto(110,110); setcolor(YELLOW); moveto(210,210); linerel(40,0); linerel(0,40); linerel(-40,0); linerel(0,-40);59 getch(); closegraph(); 3、基本圖形函數、基本圖形函數(4)簡單圖形

26、類ovoid circle(int x, int y, int radius); 以(x, y)為圓心, radius為半徑, 畫一個圓。ovoid arc(int x, int y, int stangle, int endangle, int radius);以(x, y)為圓心, radius為半徑, 從stangle開始到endangle結束(用度表示)畫一段圓弧線。逆時針方向。ovoid ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius); 以(x, y)為中心, xradius, yr

27、adius為x軸和y軸半徑, 從角stangle開始endangle結束畫一段橢圓線, 當stangle=0, endangle=360時,畫出一個完整的橢圓。3、基本圖形函數、基本圖形函數ovoid rectangle(int x1, int y1, int x2, inty2);以(x1, y1)為左上角, (x2, y2)為右下角畫一個矩形框。ovoid drawpoly(int numpoints, int *polypoints); 畫一個頂點數為numpoints,各頂點坐標由polypoints 給出的多邊形。polypoints整型數組必須至少有2倍頂點數個無素。每一個頂點的坐

28、標都定義為x, y, 并且x在前。值得注意的是當畫一個封閉的多邊形時, numpoints 的值取實際多邊形的頂點數加1, 并且數組polypoints中第一個和最后一個點的坐標相同。程序3#include graphics.hmain() int driver=DETECT,mode; int a=150,b; initgraph(&driver,&mode,); cleardevice(); for(b=10;b=140;b+=10) ellipse(320,240,0,360,a-b,b); getch(); closegraph(); 程序4#include graph

29、ics.hmain() int driver=DETECT,mode; int i,j; initgraph(&driver,&mode,); cleardevice(); for(i=0;i16;i+) setbkcolor(i); for(j=0;j16;j+) setcolor(j); circle(100+j*25,240,100); getch(); getch(); closegraph(); 程序5#include#includeint main() int gdriver, gmode, i; int arw16=200, 102, 300, 102, 300,

30、 107, 330, 100, 300, 93, 300, 98, 200, 98, 200, 102; gdriver=DETECT; initgraph(&gdriver, &gmode, ); setbkcolor(BLUE); cleardevice(); setcolor(12);/*設置作圖顏色*/ drawpoly(8, arw);/*畫一箭頭*/ getch(); closegraph(); return 0; 3、基本圖形函數、基本圖形函數(5)設定線型函數 void setlinestyle(intlinestyle, unsignedupattern, i

31、nt width); 其中l(wèi)inestyle是線形狀的規(guī)定,width是線的寬度。表3. 有關線的形狀(linestyle)符號常數 數值含義SOLID_LINE 0 實線DOTTED_LINE1 點線CENTER_LINE2 中心線DASHED_LINE3 點畫線 USERBIT_LINE 4 用戶定義線表4. 有關線寬(thickness) 符號常數數值 含義 NORM_WIDTH 1 一點寬 THIC_WIDTH 3 三點寬 對于upattern, 只有l(wèi)inestyle選USERBIT_LINE 時才有意義( 選其它線型, uppattern取0即可)。 uppattern的16位二進

32、制數的每一位代表一個象元, 如果那位為1, 則該象元打開, 否則該象元關閉。程序6#include graphics.hmain() int driver=DETECT,mode; int i,j,x=50,y=50,k=1; initgraph(&driver,&mode,); cleardevice(); setbkcolor(11); setcolor(4); for(j=1;j=2;j+) for(i=0;i4;i+) setlinestyle(i,0,k); rectangle(x,y,x+210,y+80); x=x+100; y=y+40; k=3; x=50;

33、y=250; getch(); cleardevice(); setlinestyle(4,511,3); rectangle(x,y,x+210,y+80); getch(); closegraph(); 3、基本圖形函數、基本圖形函數(6)封閉圖形的填充(i)設置填充模式ovoid setfillstyle(int pattern, int color); color的值是當前屏幕圖形模式時顏色的有效值。pattern的值及與其等價的符號常數如表5所示。 表5. 關于填充式樣pattern的規(guī)定 符號常數數值含義 EMPTY_FILL 0以背景顏色填充 SOLID_FILL 1以實填充 L

34、INE_FILL2以直線填充 LTSLASH_FILL 3以斜線填充(陰影線) SLASH_FILL 4以粗斜線填充(粗陰影線) BKSLASH_FILL 5以粗反斜線填充(粗陰影線) LTBKSLASH_FILL 6以反斜線填充(陰影線) HATCH_FILL 7以直方網格填充 XHATCH_FILL8以斜網格填充 INTTERLEAVE_FILL 9以間隔點填充 WIDE_DOT_FILL10 以稀疏點填充 CLOSE_DOS_FILL 11 以密集點填充 USER_FILL 12 以用戶定義式樣填充 3、基本圖形函數、基本圖形函數(6)封閉圖形的填充(ii)任意封閉圖形的填充ovoid

35、floodfill(int x, int y, int border);其中: x, y為封閉圖形內的任意一點。border為邊界的顏色, 也就是封閉圖形輪廓的顏色。調用了該函數后, 將用規(guī)定的顏色和圖模填滿整個封閉圖形。程序7/* 填充一個具有交叉陰影線的洋紅色橢圓*/#include graphics.hmain() int driver=DETECT,mode; initgraph(&driver,&mode,); cleardevice(); setbkcolor(9); ellipse(100,100,0,360,80,40); setfillstyle(XHATCH

36、_FILL,YELLOW); floodfill(100,100,WHITE); getch(); closegraph(); 程序8#include#includemain()int gdriver, gmode;gdriver=DETECT;initgraph(&gdriver, &gmode, );setbkcolor(BLUE);cleardevice();setcolor(LIGHTRED);setlinestyle(0,0,3);setfillstyle(3,WHITE); /*設置填充方式*/bar3d(100,200,400,350,200,1); /*畫長方體

37、并填充*/floodfill(450,300,LIGHTRED); /*填充長方體另外兩個面*/floodfill(250,150, LIGHTRED);rectangle(450,400,500,450); /*畫一矩形*/floodfill(470,420, LIGHTRED); /*填充矩形*/getch();closegraph();3、基本圖形函數、基本圖形函數(6)封閉圖形的填充(iii)選擇用戶定義的填充模式 void setfillpattern(char *upattern, int color); 程序7fu/* 填充一個具有交叉陰影線的洋紅色橢圓*/#include gr

38、aphics.hmain() int driver=DETECT,mode;char pattern8 = 0 x01, 0 x70, 0 x20, 0 x27, 0 x24, 0 x24, 0 x07, 0 x00; initgraph(&driver,&mode,); cleardevice(); setbkcolor(GREEN); setcolor(RED); ellipse(100,100,0,360,80,40); setfillpattern(pattern,YELLOW); setfillstyle(12,WHITE); floodfill(100,100,RE

39、D); getch(); closegraph(); 4、屏幕操作函數、屏幕操作函數ounsigned imagesize(int xl,int yl,int x2,int y2); 測試要保存左上角為(xl,yl), 右上角為(x2,y2)的圖形屏幕區(qū)域內的全部內容需多少個字節(jié)。ovoid getimage(int xl,int yl, int x2,int y2, void *mapbuf);將左上角為(xl,yl), 右上角為(x2,y2)的圖形屏幕區(qū)域內的圖像保存在內存中,指針為mapbuf。ovoid putimge(int x, int y, void * mapbuf, int

40、op); 該圖像輸出到左上角為點(x, y)的位置上, 其中putimage()函數中的參數op規(guī)定如何釋放內存中圖像,具體值如表6所示。 表6. putimage()函數中的op值 符號常數 數值含 義 COPY_PUT 0 復制XOR_PUT1 與屏幕圖像異或的復制OR_PUT 2 與屏幕圖像或后復制AND_PUT 3 與屏幕圖像與后復制NOT_PUT4 復制反像的圖形 程序9/* 模擬兩個小球動態(tài)碰撞過程*/#include graphics.h“ #include conio.hmain() int driver=DETECT,mode,size,i; void *buf; initgraph(&driver,&mode,); cleardevice(); setcolor(LIGHTR

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論