




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)圖形學(xué)主講教師:呂書強(qiáng) Email: 適合GIS專業(yè)教學(xué)要求o 了解圖形系統(tǒng)的框架及其涉及的軟件、硬件技術(shù); o 了解圖形學(xué)的基本問題,掌握?qǐng)D形學(xué)的基本概念、方法與算法; o 對(duì)與圖形相關(guān)的應(yīng)用及當(dāng)前的研究熱點(diǎn)有一個(gè)初步認(rèn)識(shí); o 具有一定實(shí)踐體會(huì)和相關(guān)的編程能力。 教材或參考書:o 杜曉增,計(jì)算機(jī)圖形學(xué)基礎(chǔ),高教,2005o 王汝傳等,計(jì)算機(jī)圖形學(xué),人民郵電出版社,2003.o 李東等,計(jì)算機(jī)圖形學(xué)實(shí)用教程,人民郵電出版社,2004。o 主要參考書:o 潘云鶴等,“計(jì)算機(jī)圖形學(xué)原理、方法及應(yīng)用”,高等教育出版社,2003。o 孫家廣等,計(jì)算機(jī)圖形學(xué)(第三版),清華大學(xué)出版社,2002。
2、講授內(nèi)容o 第1章 概述o 第2章 計(jì)算機(jī)圖形系統(tǒng)o 第3章 VC開發(fā)環(huán)境簡(jiǎn)介o 第4章 基本圖形元素的生成算法o 第5章 圖形變換o 第6章 圖形裁剪o 第7章 真實(shí)感物體繪制第一章 緒論 1.1 研究?jī)?nèi)容1.2 發(fā)展歷史1.3 計(jì)算機(jī)圖形學(xué)的應(yīng)用及研究前沿1.1 研究?jī)?nèi)容圖形以及構(gòu)成圖形的要素圖形以及構(gòu)成圖形的要素o 圖形:計(jì)算機(jī)圖形學(xué)的研究對(duì)象n 能在人的視覺系統(tǒng)中產(chǎn)生視覺印象的客觀對(duì)象n 包括自然景物、拍攝到的圖片、用數(shù)學(xué)方法描述的圖形等等o 構(gòu)成圖形的要素n 幾何要素:刻畫對(duì)象的輪廓、形狀等n 非幾何要素:刻畫對(duì)象的顏色、紋理等計(jì)算機(jī)中表示圖形的方法n 點(diǎn)陣表示o 枚舉出圖形中所有的
3、點(diǎn)(強(qiáng)調(diào)圖形由點(diǎn)構(gòu)成)o 簡(jiǎn)稱為圖像(數(shù)字圖像)n 參數(shù)表示o 由圖形的形狀參數(shù)(方程或分析表達(dá)式的系數(shù),線段的端點(diǎn)坐標(biāo)等)+屬性參數(shù)(顏色、線型等)來(lái)表示圖形o 簡(jiǎn)稱為圖形:什么是計(jì)算機(jī)圖形學(xué)o 定義定義1 1:計(jì)算機(jī)圖形學(xué)是研究怎樣用計(jì)算機(jī)計(jì)算機(jī)圖形學(xué)是研究怎樣用計(jì)算機(jī)生成、處理和顯示生成、處理和顯示圖形圖形的一門學(xué)科。的一門學(xué)科。o 定義定義2 2:計(jì)算機(jī)圖形學(xué)是研究通過(guò)計(jì)算機(jī)將計(jì)算機(jī)圖形學(xué)是研究通過(guò)計(jì)算機(jī)將數(shù)據(jù)轉(zhuǎn)換為圖形數(shù)據(jù)轉(zhuǎn)換為圖形,并在專用顯示設(shè)備上,并在專用顯示設(shè)備上顯示顯示的原理、方法和技術(shù)的一門學(xué)科。的原理、方法和技術(shù)的一門學(xué)科。o 計(jì)算機(jī)圖形學(xué)計(jì)算機(jī)圖形學(xué)計(jì)算機(jī)科學(xué)中,最為
4、活躍、得計(jì)算機(jī)科學(xué)中,最為活躍、得到廣泛應(yīng)用的分支之一到廣泛應(yīng)用的分支之一計(jì)算機(jī)圖形學(xué)的研究?jī)?nèi)容o如何在計(jì)算機(jī)中表示圖形、以及利用計(jì)算機(jī)進(jìn)行圖形的計(jì)算、處理和顯示的相關(guān)原理與算法,構(gòu)成了計(jì)算機(jī)圖形學(xué)的主要研究?jī)?nèi)容。n圖形硬件、圖形標(biāo)準(zhǔn)、圖形交互技術(shù)、光柵圖形生成算法、曲線曲面造型、實(shí)體造型、真實(shí)感圖形計(jì)算與顯示算法,以及科學(xué)計(jì)算可視化、計(jì)算機(jī)動(dòng)畫、自然景物仿真、虛擬現(xiàn)實(shí)等。數(shù)字圖像數(shù)據(jù)模型圖像生成(計(jì)算機(jī)圖形學(xué))模型(特征)提?。ㄓ?jì)算機(jī)視覺,模式識(shí)別)模型變換(計(jì)算幾何)圖像變換(圖像處理).發(fā)展特點(diǎn): 交叉、界線模糊、相互滲透1.1 研究?jī)?nèi)容1.2 發(fā)展歷史1.3 計(jì)算機(jī)圖形學(xué)的應(yīng)用及研究前
5、沿1.2 發(fā)展歷史發(fā)展歷史 歷史追溯 硬件發(fā)展l 圖形顯示器的發(fā)展l 圖形輸入設(shè)備的發(fā)展 圖形軟件及軟件標(biāo)準(zhǔn)的發(fā)展歷史追溯歷史追溯o 50年代n 1950年,第一臺(tái)圖形顯示器作為美國(guó)麻省理工學(xué)院(MIT)旋風(fēng)I號(hào)(Whirlwind I)計(jì)算機(jī)的附件誕生了n 1958年,美國(guó)Calcomp公司由聯(lián)機(jī)的數(shù)字記錄儀發(fā)展成滾筒式繪圖儀,GerBer公司把數(shù)控機(jī)床發(fā)展成為平板式繪圖儀n 50年代末期,MIT的林肯實(shí)驗(yàn)室在“旋風(fēng)”計(jì)算機(jī)上開發(fā)SAGE空中防御體系歷史追溯o 60年代n 1962年,MIT林肯實(shí)驗(yàn)室的I. E. Sutherland發(fā)表了一篇題為“Sketchpad:一個(gè)人機(jī)交互通信的圖形
6、系統(tǒng)”的博士論文-確定了交互圖形學(xué)作為一個(gè)學(xué)科分支(提出基本交互技術(shù)、圖元分層表示概念及數(shù)據(jù)結(jié)構(gòu))。n 1962年,雷諾汽車公司的工程師Pierre Bzier 提出Bzier曲線、曲面的理論n 1964年MIT的教授Steven A. Coons提出了超限插值的新思想,通過(guò)插值四條任意的邊界曲線來(lái)構(gòu)造曲面。歷史追溯o 70年代n 光柵圖形學(xué)迅速發(fā)展o 區(qū)域填充、裁剪、消隱等基本圖形概念、及其相應(yīng)算法紛紛誕生n 圖形軟件標(biāo)準(zhǔn)化o 1974年,ACM SIGGRAPH的“與機(jī)器無(wú)關(guān)的圖形技術(shù)”的工作會(huì)議o ACM成立圖形標(biāo)準(zhǔn)化委員會(huì),制定“核心圖形系統(tǒng)”(Core Graphics System
7、)o ISO發(fā)布CGI、CGM、GKS、PHIGSn 真實(shí)感圖形學(xué)o 1970年,Bouknight提出了第一個(gè)光反射模型o 1971年Gourand提出“漫反射模型插值”的思想,被稱為Gourand明暗處理o 1975年,Phong提出了著名的簡(jiǎn)單光照模型- Phong模型n 實(shí)體造型技術(shù)o 英國(guó)劍橋大學(xué)CAD小組的Build系統(tǒng)o 美國(guó)羅徹斯特大學(xué)的PADL-1系統(tǒng)歷史追溯o 80年代n 1980年Whitted提出了一個(gè)光透視模型-Whitted模型,并第一次給出光線跟蹤算法的范例,實(shí)現(xiàn)Whitted模型n 1984年,美國(guó)Cornell大學(xué)和日本廣島大學(xué)的學(xué)者分別將熱輻射工程中的輻射度
8、方法引入到計(jì)算機(jī)圖形學(xué)中n 圖形硬件和各個(gè)分支均在這個(gè)時(shí)期飛速發(fā)展歷史追溯o 90年代:微機(jī)和軟件系統(tǒng)的普及使得圖形學(xué)的應(yīng)用領(lǐng)域日益廣泛。n 標(biāo)準(zhǔn)化、集成化、智能化n 多媒體技術(shù)、人工智能、科學(xué)計(jì)算可視化、虛擬現(xiàn)實(shí)n 三維造型技術(shù)o ACM SIGGRAPH會(huì)議小知識(shí)n 全稱 “the Special Interest Group on Computer Graphics and Interactive Techniques”n 60年代中期,由Brown 大學(xué)的教授Andries van Dam (Andy) 和IBM公司的Sam Matsa發(fā)起n 1974年,在Colorado大學(xué)召開了第
9、一屆SIGGRAPH 年會(huì),并取得了巨大的成功n 每年只錄取大約50篇論文歷史追溯硬件發(fā)展o 圖形顯示器的發(fā)展 圖形顯示器是計(jì)算機(jī)圖形學(xué)中關(guān)鍵的設(shè)備o 60年代中期:畫線顯示器(亦稱矢量顯示器) 需要刷新。設(shè)備昂貴,限制普及o 60年代后期:存儲(chǔ)管式顯示器 不需刷新,價(jià)格較低,缺點(diǎn)是不具有動(dòng)態(tài)修改 圖形功能,不適合交互式。硬件發(fā)展o 70年代初,刷新式光柵掃描顯示器出現(xiàn),大大地推動(dòng)了交互式圖形技術(shù)的發(fā)展。o 以點(diǎn)陣形式表示圖形,使用專用的緩沖區(qū)存放點(diǎn)陣,由視頻控制器負(fù)責(zé)刷新掃描。 圖形顯示設(shè)備的發(fā)展:畫線顯示器(矢量顯示器/隨機(jī)掃描顯示器)存儲(chǔ)管式顯示器刷新式光柵掃描顯示器硬件發(fā)展圖形輸入設(shè)備
10、的發(fā)展n 第一階段:控制開關(guān)、穿孔紙等等n 第二階段:鍵盤n 第三階段:二維定位設(shè)備,如鼠標(biāo)、光筆、圖形輸入板、觸摸屏等等,語(yǔ)音n 第四階段:三維輸入設(shè)備(如空間球、數(shù)據(jù)手套、數(shù)據(jù)衣),用戶的手勢(shì)、表情等等n 第五階段:用戶的思維1.1 研究?jī)?nèi)容1.2 發(fā)展歷史1.3 計(jì)算機(jī)圖形學(xué)的應(yīng)用及研究前沿1.3計(jì)算機(jī)圖形學(xué)的應(yīng)用及研究前沿計(jì)算機(jī)圖形學(xué)的應(yīng)用圖形用戶界面 介于人與計(jì)算機(jī)之間,人與機(jī)器的通信。 人機(jī)界面(HCI):軟件硬件 發(fā)展:由指示燈和機(jī)械開關(guān)組成的操縱界面由終端和鍵盤組成的字符界面(80年代)由多種輸入設(shè)備和光柵圖形顯示設(shè)備構(gòu)成的圖形用戶界面(GUI)(90年代)。PC,工作站,WI
11、MP(W-windows、I-icons、M-menu、P-pointing devices)界面,所見即所得VR技術(shù)(發(fā)展方向)計(jì)算機(jī)輔助設(shè)計(jì)與制造(CAD/CAM)-CAD/CAM是計(jì)算機(jī)圖形學(xué)在工業(yè)界最廣泛、最活躍的應(yīng)用領(lǐng)域o 飛機(jī)、汽車、船舶的外形的設(shè)計(jì)o 發(fā)電廠、化工廠等的布局o 土木工程、建筑物的設(shè)計(jì)o 電子線路、電子器件的設(shè)計(jì)o 設(shè)計(jì)結(jié)果直接送至后續(xù)工藝進(jìn)行加工處理,如波音777飛機(jī)的設(shè)計(jì)和加工過(guò)程奧迪效果圖和線框圖奧迪效果圖和線框圖計(jì)算機(jī)輔助設(shè)計(jì)與制造(CAD/CAM)n 基于工程圖紙的三維形體重建o 定義:定義:從二維信息中提取三維信息,通過(guò)對(duì)這些信息進(jìn)行分類、綜合等一系列處
12、理,在三維空間中重新構(gòu)造出二維信息所對(duì)應(yīng)的三維形體,恢復(fù)形體的點(diǎn)、線、面及其拓?fù)潢P(guān)系,從而實(shí)現(xiàn)形體的重建o 優(yōu)勢(shì):可以做裝配件的干涉檢查、以及有限元分析、仿真、加工等后續(xù)操作,代表CAD技術(shù)的發(fā)展方向工程圖及其三維重建結(jié)果1工程圖及其三維重建結(jié)果2可視化o 科學(xué)計(jì)算可視化(Scientific Visualization)n 海量的數(shù)據(jù)使得人們對(duì)數(shù)據(jù)的分析和處理變得越來(lái)越難,用圖形來(lái)表示數(shù)據(jù)的迫切性與日俱增n 1986年,美國(guó)科學(xué)基金會(huì)(NSF)專門召開了一次研討會(huì),會(huì)上提出了“科學(xué)計(jì)算可視化(Visualization in Scientific Computing)”n 科學(xué)計(jì)算可視化廣泛
13、應(yīng)用于醫(yī)學(xué)、流體力學(xué)、有限元分析、氣象分析當(dāng)中可視化n 在醫(yī)學(xué)領(lǐng)域,可視化有著廣闊的發(fā)展前途o 是機(jī)械手術(shù)和遠(yuǎn)程手術(shù)的基礎(chǔ)o 將醫(yī)用CT掃描的數(shù)據(jù)轉(zhuǎn)化為三維圖象,幫助醫(yī)生判別病人體內(nèi)的患處o 由CT數(shù)據(jù)產(chǎn)生在人體內(nèi)漫游的圖象n 可視化的前沿與難點(diǎn)o 可視化硬件的研究o 實(shí)時(shí)的三維體繪制o 體內(nèi)組織的識(shí)別分割Segmentation真實(shí)感圖形實(shí)時(shí)繪制與自然景物仿真n 計(jì)算機(jī)中重現(xiàn)真實(shí)世界的場(chǎng)景叫做真實(shí)感繪制n 真實(shí)感繪制的主要任務(wù)是模擬真實(shí)物體的物理屬性,簡(jiǎn)單的說(shuō)就是物體的形狀,光學(xué)性質(zhì),表面的紋理和粗糙程度,以及物體間的相對(duì)位置,遮擋關(guān)系等等真實(shí)感圖形實(shí)時(shí)繪制與自然景物仿真n 光照模型o 簡(jiǎn)單
14、光照模型o 整體光照模型n 繪制方法o 光線跟蹤o 輻射度n 加速算法o 包圍體樹、自適應(yīng)八叉樹等等地理信息系統(tǒng)(GIS)o 建立在地理圖形之上的關(guān)于各種資源的綜合信息管理系統(tǒng)。o 數(shù)字地球,地形數(shù)據(jù)作為載體。o 軍事,政府決策,旅游,資源調(diào)查。 娛樂電腦游戲n 實(shí)時(shí)性n 逼真性n 蘊(yùn)含了先進(jìn)的圖形處理技術(shù)電視廣告,節(jié)目片頭,科教演示(CAI) Quake III,“古墓麗影”,“侏羅紀(jì)公園”、“皇帝的新衣”、完美風(fēng)暴 MAYA, 3D-MAX, SOFTIMAGE多媒體多媒體 在計(jì)算機(jī)控制下,對(duì)多種媒體信息進(jìn)行生成、操作、表現(xiàn)、存儲(chǔ)、通信、或集成的信息系統(tǒng)其中媒體至少應(yīng)包括一種“連續(xù)媒體”或
15、一種“離散媒體”。n計(jì)算機(jī)處理的常見媒體:文本、圖形、圖像、語(yǔ)音、音頻、視頻、動(dòng)畫n特點(diǎn):媒體的多樣性、操作的交互性、系統(tǒng)的集成性oCAI, 娛樂。Virtual Reality(虛擬現(xiàn)實(shí)、靈境)Virtual Reality 或稱虛擬環(huán)境(Virtual Environment)n是用計(jì)算機(jī)技術(shù)來(lái)生成一個(gè)逼真的三維視覺、聽覺、觸覺或嗅覺等感覺世界,讓用戶可以從自己的視點(diǎn)出發(fā),利用自然的技能和某些設(shè)備對(duì)這一生成的虛擬世界客體進(jìn)行瀏覽和交互考察。n輸入輸出設(shè)備 虛擬現(xiàn)實(shí)是指用立體眼鏡、傳感手套等一系列傳感輔助設(shè)施來(lái)實(shí)現(xiàn)的一種三維現(xiàn)實(shí),人們通過(guò)這些設(shè)施以自然的方式(如頭的轉(zhuǎn)動(dòng)、手的運(yùn)動(dòng)等)向計(jì)算機(jī)
16、送入各種動(dòng)作信息,并且通過(guò)視覺、聽覺以及觸覺設(shè)施使人們得到三維的視覺、聽覺等感覺世界。隨著人們不同的動(dòng)作,這些感覺也隨之改變。 QuickTime是蘋果公司開發(fā)的新一代虛擬現(xiàn)實(shí)技術(shù)。它是一種基于靜態(tài)圖像處理的,在微機(jī)平臺(tái)上能夠?qū)崿F(xiàn)的初級(jí)虛擬現(xiàn)實(shí)技術(shù)。它的出現(xiàn)使得以往專業(yè)實(shí)驗(yàn)室中成本昂貴的虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用普及有了廣闊的前景。 假定我們?cè)谝皇铱臻g進(jìn)行觀察,室內(nèi)空間一般有六個(gè)面,如果我們獲取了這六個(gè)面的許多不同距離,不同方位的實(shí)景照片并將它們按照相互的關(guān)系有機(jī)連接起來(lái),就可以在視覺上形成這個(gè)房間整個(gè)空間的整體認(rèn)識(shí),這就是全景概念。當(dāng)前研究熱點(diǎn)n 真實(shí)感圖形實(shí)時(shí)繪制o 物體網(wǎng)格模型的面片簡(jiǎn)化:對(duì)網(wǎng)格
17、面片表示的模型,在一定誤差的精度范圍內(nèi),刪除點(diǎn)、邊、面,從而簡(jiǎn)化所繪制場(chǎng)景的復(fù)雜度,加快圖形繪制速度o 基于圖象的繪制(IBR,Image Based Rendering):完全摒棄傳統(tǒng)的先建模,然后確定光源的繪制的方法。它直接從一系列已知的圖象中生成未知視角的圖象,適用于野外極其復(fù)雜場(chǎng)景的生成和漫游n 野外自然景物的模擬o 野外場(chǎng)景遠(yuǎn)遠(yuǎn)復(fù)雜于室內(nèi)場(chǎng)景,繪制難度更大,方法更趨多樣化o 主要繪制山、水、云、樹、草、火等等o 繪制火的粒子系統(tǒng)(Particle System),基于生理模型的繪制植物的方法,繪制云的細(xì)胞自動(dòng)機(jī)方法等由清華大學(xué)自然景物平臺(tái)生成的野外場(chǎng)景日本Yoshinori Doba
18、shi等人繪制的真實(shí)感云Xfrog3.0生成的挪威云杉與計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的緊密結(jié)合n 遠(yuǎn)程醫(yī)療與診斷n 遠(yuǎn)程導(dǎo)航與維修n 遠(yuǎn)程教育計(jì)算機(jī)動(dòng)畫n 計(jì)算機(jī)動(dòng)畫近十多年來(lái)取得了很大的發(fā)展,已滲透到人們生活的各個(gè)角落o 商業(yè)廣告、影視特技/片頭、動(dòng)畫片o 教育、軍事、飛行模擬等n 分類o 二維動(dòng)畫n 圖象變形n 形狀混合計(jì)算機(jī)動(dòng)畫o三維動(dòng)畫n 關(guān)鍵幀動(dòng)畫n 變形物體的動(dòng)畫n 過(guò)程動(dòng)畫n 關(guān)節(jié)動(dòng)畫與人體動(dòng)畫基于特征的圖象變形(貓變虎)用戶接口n 用戶接口是人們使用計(jì)算機(jī)的第一觀感。一個(gè)友好的圖形化的用戶界面能夠大大提高軟件的易用性n 圖形學(xué)已經(jīng)全面融入計(jì)算機(jī)的方方面面,很多軟件幾乎可以不看任何說(shuō)明書,而根
19、據(jù)它的圖形、或動(dòng)畫界面的指示進(jìn)行操作用戶接口n 目前幾個(gè)大的軟件公司都在研究下一代用戶界面,開發(fā)面向主流應(yīng)用的、自然、高效多通道的用戶界面。研究多通道語(yǔ)義模型、多通道整合算法及其軟件結(jié)構(gòu)和界面范式是當(dāng)前用戶界面和接口方面研究的主流方向,而圖形學(xué)在其中起主導(dǎo)作用。 計(jì)算機(jī)藝術(shù)n 用計(jì)算機(jī)軟件從事藝術(shù)創(chuàng)作o 二維平面的畫筆程序(如CorelDraw,Photoshop,PaintShop)o 圖表繪制軟件(如Visio)o 三維建模和渲染軟件包(如3DMAX,Maya)、以及一些專門生成動(dòng)畫的軟件(如Alias,Softimage)計(jì)算機(jī)藝術(shù)o 優(yōu)點(diǎn):n 提供多種風(fēng)格的畫筆畫刷n 提供多種多樣的紋
20、理貼圖,甚至能對(duì)圖象進(jìn)行霧化,變形等操作n 可以任意修改,取消敗筆o 不足:n 無(wú)法達(dá)到傳統(tǒng)繪畫中風(fēng)格化的 藝術(shù)效果n 很難得到有素描效果、油畫效果的藝術(shù)品計(jì)算機(jī)藝術(shù)n 非真實(shí)感繪制(NPR,Non-Photorealistic Rendering)o 用于模擬藝術(shù)效果,研究方法有別于真實(shí)感圖形學(xué)o 鋼筆素描的生成n 鋼筆素描產(chǎn)生于中世紀(jì),從19世紀(jì)開始成為一門藝術(shù)20世紀(jì)90年代開始研究用計(jì)算機(jī)模擬o 中國(guó)國(guó)畫與書法的生成Georges Winkenb1ach繪制的壺和碗(Siggraph96)Salisbury繪制的茶壺(Siggraph97)Salisbury繪制的熊(Siggraph9
21、7)Oliver Deussen繪制的素描樹(Siggraph2000)第二講圖形系統(tǒng)計(jì)算機(jī)圖形硬件簡(jiǎn)介o圖形輸入設(shè)備圖形輸入設(shè)備 1 1 向量型圖形輸入設(shè)備向量型圖形輸入設(shè)備 它采取跟蹤軌跡、記錄坐標(biāo)點(diǎn)的方法輸入圖形。常用的向量型圖形輸它采取跟蹤軌跡、記錄坐標(biāo)點(diǎn)的方法輸入圖形。常用的向量型圖形輸入設(shè)備有數(shù)字化儀、鼠標(biāo)器、光筆等。入設(shè)備有數(shù)字化儀、鼠標(biāo)器、光筆等。2 2 光柵掃描型圖形輸入設(shè)備光柵掃描型圖形輸入設(shè)備 它采取遠(yuǎn)行掃描、按一定密度采樣的方式輸入圖形,輸入數(shù)據(jù)為一灰它采取遠(yuǎn)行掃描、按一定密度采樣的方式輸入圖形,輸入數(shù)據(jù)為一灰度圖。這方面的研究已逐步達(dá)到實(shí)用階段。常用的光柵掃描型圖形輸
22、度圖。這方面的研究已逐步達(dá)到實(shí)用階段。常用的光柵掃描型圖形輸入設(shè)各有掃描儀和攝像機(jī)。柵格數(shù)據(jù)經(jīng)過(guò)圖形識(shí)別可以轉(zhuǎn)換為矢量圖入設(shè)各有掃描儀和攝像機(jī)。柵格數(shù)據(jù)經(jīng)過(guò)圖形識(shí)別可以轉(zhuǎn)換為矢量圖形形 。 計(jì)算機(jī)圖形硬件簡(jiǎn)介o圖形輸出設(shè)備圖形輸出設(shè)備 圖形輸出設(shè)備是以紙、膠片、塑料薄膜等物質(zhì)為介質(zhì),輸出入眼可視圖形輸出設(shè)備是以紙、膠片、塑料薄膜等物質(zhì)為介質(zhì),輸出入眼可視并能長(zhǎng)期保存的圖形的計(jì)算機(jī)外部設(shè)備。并能長(zhǎng)期保存的圖形的計(jì)算機(jī)外部設(shè)備。1 1 向量型設(shè)備向量型設(shè)備作畫機(jī)構(gòu)隨著圖形的輸出形狀而移動(dòng)并成像。如筆式繪圖儀。作畫機(jī)構(gòu)隨著圖形的輸出形狀而移動(dòng)并成像。如筆式繪圖儀。2 2 光柵掃描型設(shè)備光柵掃描型設(shè)備
23、作畫機(jī)構(gòu)按光柵矩陣方式掃描整張圖面,并按輸出內(nèi)容對(duì)圖形成像。作畫機(jī)構(gòu)按光柵矩陣方式掃描整張圖面,并按輸出內(nèi)容對(duì)圖形成像。光柵掃描型輸出設(shè)備包括點(diǎn)陣式打印機(jī)、熱敏印刷機(jī)、靜電印刷機(jī)、光柵掃描型輸出設(shè)備包括點(diǎn)陣式打印機(jī)、熱敏印刷機(jī)、靜電印刷機(jī)、噴墨印刷機(jī)以及激光打印機(jī)等。噴墨印刷機(jī)以及激光打印機(jī)等。 計(jì)算機(jī)圖形硬件簡(jiǎn)介o常用圖形顯示設(shè)備常用圖形顯示設(shè)備 1 1 陰極射線管陰極射線管陰極射線管的技術(shù)指標(biāo)主要有兩條,一是分辨率,二是顯示速度。陰極射線管的技術(shù)指標(biāo)主要有兩條,一是分辨率,二是顯示速度。 2 2 顯示器顯示器顯示器有隨機(jī)掃描顯示器、存儲(chǔ)管式顯示器、光柵掃描式顯示器、液晶顯顯示器有隨機(jī)掃描顯
24、示器、存儲(chǔ)管式顯示器、光柵掃描式顯示器、液晶顯示器、等粒子顯示器等。示器、等粒子顯示器等。第三講VC+開發(fā)環(huán)境VC+開發(fā)環(huán)境1 VC+ 6.01 VC+ 6.0是一個(gè)集成開發(fā)環(huán)境,它以是一個(gè)集成開發(fā)環(huán)境,它以C+C+語(yǔ)言為基礎(chǔ),實(shí)語(yǔ)言為基礎(chǔ),實(shí)施面向?qū)ο缶幊?。施面向?qū)ο缶幊獭?2 VC+ 6.0 2 VC+ 6.0 的集成環(huán)境能完成絕大多數(shù)編程事務(wù),包括菜的集成環(huán)境能完成絕大多數(shù)編程事務(wù),包括菜單設(shè)置、圖標(biāo)繪制、對(duì)話窗口設(shè)置、工具按鈕以及幫助單設(shè)置、圖標(biāo)繪制、對(duì)話窗口設(shè)置、工具按鈕以及幫助文件的設(shè)置等等。文件的設(shè)置等等。3 VC+ 6.0 3 VC+ 6.0 的導(dǎo)航功能遍及各個(gè)方面,能為編程人
25、員提供的導(dǎo)航功能遍及各個(gè)方面,能為編程人員提供快速的原型。快速的原型。4 VC+ 6.0 4 VC+ 6.0 能實(shí)現(xiàn)不同層次的編程,從底層的面向硬件的能實(shí)現(xiàn)不同層次的編程,從底層的面向硬件的編程到高級(jí)的各種應(yīng)用集成。編程到高級(jí)的各種應(yīng)用集成。VC+程序的基本架構(gòu)o 程序入口程序入口(App)(App)o 框架類框架類(Main/ChildFrame(Main/ChildFrame) )o 文檔類文檔類(Doc)(Doc)負(fù)責(zé)數(shù)據(jù)的存取負(fù)責(zé)數(shù)據(jù)的存取o 視圖類視圖類(View)-(View)-負(fù)責(zé)信息的展示負(fù)責(zé)信息的展示o 資源(對(duì)話框、菜單等)資源(對(duì)話框、菜單等)VC+程序的基本架構(gòu)o 程序
26、入口程序入口(App)(App)n WinMain函數(shù)隱藏在應(yīng)用程序框架內(nèi)部。函數(shù)隱藏在應(yīng)用程序框架內(nèi)部。n 類類CExamApp的對(duì)象代表了一個(gè)應(yīng)用程序。的對(duì)象代表了一個(gè)應(yīng)用程序。定義了一個(gè)單獨(dú)的全局定義了一個(gè)單獨(dú)的全局CExamApp對(duì)象對(duì)象theApp。基類?;怌WinApp。n 應(yīng)用程序啟動(dòng),首先調(diào)用應(yīng)用程序啟動(dòng),首先調(diào)用WinMain函數(shù),函數(shù),這個(gè)函數(shù)就查找該應(yīng)用程序的全局構(gòu)造對(duì)象這個(gè)函數(shù)就查找該應(yīng)用程序的全局構(gòu)造對(duì)象theAppVC+程序的基本架構(gòu)o 框架類框架類(Main/ChildFrame(Main/ChildFrame) )n CMainFram應(yīng)用程序的主框架窗口。當(dāng)
27、構(gòu)應(yīng)用程序的主框架窗口。當(dāng)構(gòu)造函數(shù)調(diào)用基類造函數(shù)調(diào)用基類CFrameWnd的的Create函數(shù)時(shí),函數(shù)時(shí),Windows將創(chuàng)建具體的窗口結(jié)構(gòu)。將創(chuàng)建具體的窗口結(jié)構(gòu)。n 主框架窗口包括標(biāo)題欄、菜單欄。而工具欄主框架窗口包括標(biāo)題欄、菜單欄。而工具欄窗口、狀態(tài)欄窗口和視圖窗口則占據(jù)著主框窗口、狀態(tài)欄窗口和視圖窗口則占據(jù)著主框架窗口的客戶區(qū)域。架窗口的客戶區(qū)域。VC+程序的基本架構(gòu)o 框架類框架類(Main/ChildFrame(Main/ChildFrame) )VC+程序的基本架構(gòu)o 文檔類文檔類(Doc)(Doc)負(fù)責(zé)數(shù)據(jù)的存取負(fù)責(zé)數(shù)據(jù)的存取n Microsoft在設(shè)計(jì)基礎(chǔ)類庫(kù)時(shí),考慮到把數(shù)據(jù)在
28、設(shè)計(jì)基礎(chǔ)類庫(kù)時(shí),考慮到把數(shù)據(jù)與它的顯示分離開,于是就采用文檔類和視類與它的顯示分離開,于是就采用文檔類和視類結(jié)構(gòu)來(lái)實(shí)現(xiàn)。結(jié)構(gòu)來(lái)實(shí)現(xiàn)。n 數(shù)據(jù)的存儲(chǔ)和加載由文檔類來(lái)完成,數(shù)據(jù)的顯數(shù)據(jù)的存儲(chǔ)和加載由文檔類來(lái)完成,數(shù)據(jù)的顯示和修改則由視類來(lái)完成,從而把數(shù)據(jù)管理和示和修改則由視類來(lái)完成,從而把數(shù)據(jù)管理和顯示方法分離開來(lái)。顯示方法分離開來(lái)。VC+程序的基本架構(gòu)o 視圖類視圖類(View)-(View)-負(fù)責(zé)信息的展示負(fù)責(zé)信息的展示VC+程序的基本架構(gòu)o 資源(對(duì)話框、菜單等)資源(對(duì)話框、菜單等)包括對(duì)話框、菜單、快捷鍵、圖標(biāo)等。包括對(duì)話框、菜單、快捷鍵、圖標(biāo)等。對(duì)話框:模式對(duì)話框和無(wú)模式對(duì)話框?qū)υ捒颍?/p>
29、模式對(duì)話框和無(wú)模式對(duì)話框VC+程序的基本架構(gòu)o Frame、View、Document是互相聯(lián)系的。是互相聯(lián)系的。o 如如SDI程序,程序,CMainFrame調(diào)用調(diào)用GetActiveView獲得獲得CViewo 而而 C V i e w 可 以 調(diào) 用可 以 調(diào) 用 G e t D o c u m e n t 獲 得獲 得CDocument。o 如 果 已 知如 果 已 知 C D o c u m e n t , 可 以 使 用, 可 以 使 用GetFirstViewPosition獲得第一個(gè)相關(guān)的獲得第一個(gè)相關(guān)的CView,然后使用然后使用GetNextView獲得下一個(gè)的獲得下一個(gè)的
30、CView。消息處理與交互式繪圖o WindowsWindows應(yīng)用程序具有俘獲各種操作和事件的能力,并提供應(yīng)用程序具有俘獲各種操作和事件的能力,并提供相應(yīng)的機(jī)會(huì)對(duì)之進(jìn)行反應(yīng),這實(shí)質(zhì)上是一個(gè)消息處理機(jī)制,相應(yīng)的機(jī)會(huì)對(duì)之進(jìn)行反應(yīng),這實(shí)質(zhì)上是一個(gè)消息處理機(jī)制,按消息的級(jí)別和到達(dá)的次序進(jìn)行相應(yīng)的處理。按消息的級(jí)別和到達(dá)的次序進(jìn)行相應(yīng)的處理。o 交互式繪圖一般要求對(duì)鼠標(biāo)交互式繪圖一般要求對(duì)鼠標(biāo)/ /鍵盤的操作鍵盤的操作(MouseClick/MouseMoveMouseClick/MouseMove等)進(jìn)行反應(yīng),并通過(guò)獲取相應(yīng)等)進(jìn)行反應(yīng),并通過(guò)獲取相應(yīng)信息來(lái)建立相應(yīng)的圖形。信息來(lái)建立相應(yīng)的圖形。o
31、CDCCDC類一包括用于圖形繪制的全部函數(shù)和操作。類一包括用于圖形繪制的全部函數(shù)和操作。o OpenGLOpenGL提供了用于三維圖形實(shí)體設(shè)計(jì)的全部函數(shù)和操作。提供了用于三維圖形實(shí)體設(shè)計(jì)的全部函數(shù)和操作。Windows系統(tǒng)把應(yīng)用程序的所有輸入傳入給應(yīng)用程序窗口,每一個(gè)窗口都有一個(gè)稱作窗口過(guò)程的函數(shù),當(dāng)窗口有輸入時(shí)Windows系統(tǒng)要調(diào)用它,窗口過(guò)程處理輸入并把控制返回給Windows。Windows系統(tǒng)以消息的形式把輸入傳給窗口過(guò)程,消息是由Windows系統(tǒng)或應(yīng)用程序產(chǎn)生的,Windows系統(tǒng)對(duì)于每一個(gè)輸入事件都要產(chǎn)生消息-例如鍵盤、鼠標(biāo)的動(dòng)作。Windows系統(tǒng)為了響應(yīng)應(yīng)用程序給系統(tǒng)帶來(lái)的
32、變化也會(huì)產(chǎn)生消息-例如應(yīng)用程序改變了系統(tǒng)字體或改變了一個(gè)窗口的大小。應(yīng)用程序可以通過(guò)產(chǎn)生消息指導(dǎo)它自己的窗口來(lái)完成某項(xiàng)任務(wù),或是與其他應(yīng)用程序的窗口進(jìn)行通信。消息有六個(gè)參數(shù): typedef struct tagMSG HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; MSG; 消息處理與交互式繪圖目的窗口目的窗口(hwnd):接收消息的窗口,也就是那一個(gè)窗口的窗口過(guò)程將被調(diào)用。消息標(biāo)志消息標(biāo)志(message):一個(gè)命名的常量,用來(lái)標(biāo)志消息的目的,也就是消息的含義。如果窗口過(guò)程收到一條消息
33、,它就通過(guò)消息標(biāo)志來(lái)決定如何處理這條消息。消息的附加內(nèi)容,具體的含義取決于具體消息標(biāo)志message。參數(shù)分為高低位。消息參數(shù)可以是一個(gè)整數(shù)、緊縮的位標(biāo)志、一個(gè)含有附加數(shù)據(jù)結(jié)構(gòu)的指針等等。參數(shù)參數(shù)1(wParam):消息處理與交互式繪圖參數(shù)參數(shù)2(lParam):消息的附加內(nèi)容,具體的含義取決于具體消息標(biāo)志message。參數(shù)分為高低位。消息參數(shù)可以是一個(gè)整數(shù)、緊縮的位標(biāo)志、一個(gè)含有附加數(shù)據(jù)結(jié)構(gòu)的指針等等。消息發(fā)出的時(shí)間。分發(fā)時(shí)間分發(fā)時(shí)間(time):光標(biāo)位置光標(biāo)位置(pt):消息發(fā)生時(shí)鼠標(biāo)光標(biāo)的位置。以設(shè)備坐標(biāo)系定位。消息處理與交互式繪圖交互繪圖實(shí)例oScribbleScribble線條的任
34、意繪制,主要是跟蹤鼠標(biāo)的操作。線條的任意繪制,主要是跟蹤鼠標(biāo)的操作。幾個(gè)基本的圖形操作函數(shù)o CDCCDC類類-設(shè)備類,能提供圖形、文本等的輸出設(shè)備。設(shè)備類,能提供圖形、文本等的輸出設(shè)備。 o CDCCDC類里包含了大量的基本圖形函數(shù),包括線型、顏色、類里包含了大量的基本圖形函數(shù),包括線型、顏色、填充模式、位圖等的設(shè)置,以及點(diǎn)、線、多變形等各種填充模式、位圖等的設(shè)置,以及點(diǎn)、線、多變形等各種基本圖形繪制函數(shù),而其中最為基本的函數(shù)是基本圖形繪制函數(shù),而其中最為基本的函數(shù)是SetPixelSetPixel,它是其他函數(shù)的實(shí)現(xiàn)基礎(chǔ)。,它是其他函數(shù)的實(shí)現(xiàn)基礎(chǔ)。o 以下將重點(diǎn)介紹幾個(gè)基礎(chǔ)函數(shù)。以下將重點(diǎn)
35、介紹幾個(gè)基礎(chǔ)函數(shù)。o RGB RGB 函數(shù),根據(jù)提供的三原色參數(shù)合成一個(gè)顏色,如函數(shù),根據(jù)提供的三原色參數(shù)合成一個(gè)顏色,如RGB(255,0,0)RGB(255,0,0)即合成紅色,返回類型通常為以長(zhǎng)整型,即合成紅色,返回類型通常為以長(zhǎng)整型,且以且以COLORREFCOLORREF類型表示。類型表示。幾個(gè)基本的圖形操作函數(shù)o/ /* * SetPixelSetPixel函數(shù)的使用函數(shù)的使用oCOLORREF COLORREF SetPixelSetPixel( ( intint x, x, intint y, COLORREF y, COLORREF crColorcrColor ); );o
36、COLORREF SetPixelCOLORREF SetPixel( POINT ( POINT pointpoint, COLORREF , COLORREF crColorcrColor ); ); o-o* */ /opDCpDC-SetPixel(100,100,RGB(0,0,255);-SetPixel(100,100,RGB(0,0,255);ointint i=1; i=1;ofor(i=1;i100;i+)for(i=1;i-SetPixel(i,iSetPixel(i,i* *2,RGB(0,0,255);2,RGB(0,0,255);o 幾個(gè)基本的圖形操作函數(shù)o/-/-
37、o/ /* * CPenCPen類的使用類的使用o BOOL BOOL CreatePenCreatePen( ( intint nPenStylenPenStyle, , intint nWidthnWidth, COLORREF , COLORREF crColorcrColor ); );o-onPenStylenPenStyle: :oPS_SOLID PS_SOLID 實(shí)線實(shí)線oPS_DASH PS_DASH 短線短線oPS_DOT PS_DOT 點(diǎn)點(diǎn)o* */ /幾個(gè)基本的圖形操作函數(shù)o CPenCPen apenapen; ;oif (apen.CreatePen(PS_SOLI
38、D,2,RGB(255,0,0)if (apen.CreatePen(PS_SOLID,2,RGB(255,0,0)o oCPenCPen* * odlpenodlpen= =pDCpDC-SelectObject(&apenSelectObject(&apen););opDCpDC-MoveTo(100,100);-MoveTo(100,100);opDCpDC-LineTo(300,300);-LineTo(300,300);opDCpDC-SelectObject(odlpenSelectObject(odlpen););o 幾個(gè)基本的圖形操作函數(shù)o/ /* * CBru
39、shCBrush類的使用類的使用oBOOL BOOL CreateSolidBrushCreateSolidBrush( COLORREF ( COLORREF crColorcrColor ); );oBOOL BOOL CreateHatchBrushCreateHatchBrush( ( intint nIndexnIndex, COLORREF , COLORREF crColorcrColor ); );o-onIndexnIndex: :oHS_BDIAGONAL HS_BDIAGONAL oHS_CROSSHS_CROSSoHS_DIAGCROSS HS_DIAGCROSS oH
40、S_FDIAGONALHS_FDIAGONALoHS_HORIZONTALHS_HORIZONTALoHS_VERTICALHS_VERTICALo* */ /幾個(gè)基本的圖形操作函數(shù)CBrushCBrush abrushabrush; ;if (abrush.CreateSolidBrush(RGB(0,255,0)if (abrush.CreateSolidBrush(RGB(0,255,0) CBrushCBrush* * oldbrusholdbrush= =pDCpDC- - SelectObject(&abrushSelectObject(&abrush););pDC
41、pDC-Rectangle(200,200,300,400);-Rectangle(200,200,300,400);pDCpDC-SelectObject(oldbrushSelectObject(oldbrush);); 幾個(gè)基本的圖形操作函數(shù)o 對(duì)于任何采用對(duì)于任何采用SetPixelSetPixel繪圖的函數(shù),必須包括兩個(gè)基本繪圖的函數(shù),必須包括兩個(gè)基本的參數(shù),即設(shè)備參數(shù)的參數(shù),即設(shè)備參數(shù)CDC CDC * *pDCpDC, COLORREF , COLORREF aColoraColoro void void Cmap:DrawLineBySetpixel(CDCCmap:DrawL
42、ineBySetpixel(CDC * *pDCpDC, COLORREF , COLORREF aColoraColor) )o ointint i=0; i=0;ofor (i=1;i300;i+)for (i=1;i-SetPixel(i,iSetPixel(i,i* *3,aColor);3,aColor);o oreturn;return;o 第四講基本圖形元素的生成算法基本圖形元素o 點(diǎn)、線、圓(圓弧)、區(qū)域填充和字符等。點(diǎn)、線、圓(圓?。?、區(qū)域填充和字符等。o 基本圖形生成算法:速度、質(zhì)量,通常情況下基本圖形生成算法:速度、質(zhì)量,通常情況下速度是第一位的,因?yàn)樗惴ㄍǔ1徽{(diào)用很多次
43、。速度是第一位的,因?yàn)樗惴ㄍǔ1徽{(diào)用很多次。 點(diǎn)的生成o 點(diǎn)是最基本的圖形,通常情況下,點(diǎn)由一個(gè)像素點(diǎn)是最基本的圖形,通常情況下,點(diǎn)由一個(gè)像素(設(shè)置其顯示緩沖器的灰度值)來(lái)描述。(設(shè)置其顯示緩沖器的灰度值)來(lái)描述。o 對(duì)于光柵顯示器,象素點(diǎn)的多少?zèng)Q定了顯示器的分對(duì)于光柵顯示器,象素點(diǎn)的多少?zèng)Q定了顯示器的分辨率。橫向分辨率通常為辨率。橫向分辨率通常為320、640、1024,8 的倍數(shù),縱向通常為的倍數(shù),縱向通常為200、480、1024。直線的生成o在光柵顯示器的熒光屏上生成一個(gè)對(duì)象,實(shí)質(zhì)上是往幀暫存寄在光柵顯示器的熒光屏上生成一個(gè)對(duì)象,實(shí)質(zhì)上是往幀暫存寄存器的相應(yīng)單元中填入數(shù)據(jù)。畫一條從存器
44、的相應(yīng)單元中填入數(shù)據(jù)。畫一條從(x1,y1)(x1,y1)到到(x2,y2)(x2,y2)的直的直線,實(shí)質(zhì)上是一個(gè)發(fā)現(xiàn)線,實(shí)質(zhì)上是一個(gè)發(fā)現(xiàn)最佳逼近直線最佳逼近直線的像素序列,并填入色的像素序列,并填入色彩數(shù)據(jù)的過(guò)程。這個(gè)過(guò)程也稱為直線光柵化。彩數(shù)據(jù)的過(guò)程。這個(gè)過(guò)程也稱為直線光柵化。o基本要求:基本要求:o1、應(yīng)該為最佳逼近線;、應(yīng)該為最佳逼近線;2、端點(diǎn)位置應(yīng)該是正確的;、端點(diǎn)位置應(yīng)該是正確的;3、線濃、線濃度應(yīng)該是均勻的;度應(yīng)該是均勻的;4、生成速度應(yīng)該盡可能的快。、生成速度應(yīng)該盡可能的快。o幾種基本直線算法幾種基本直線算法:o1 1、DDADDA;2 2、中點(diǎn)法;、中點(diǎn)法;3 3、Bres
45、enhamBresenham算法。算法。直線生成算法-DDA數(shù)值微分法() 假定直線的起點(diǎn)、終點(diǎn)分別為:(x0,y0), (x1,y1),且都為整數(shù)。(X i+1 ,Yi + k)(X i , Int(Yi +0.5)(X i , Yi)柵格交點(diǎn)表示象素點(diǎn)位置。數(shù)值微分(DDA)法o基本思想已知過(guò)端點(diǎn)P0 (x0, y0), P1(x1, y1)的直線段Ly=kx+b直線斜率為這種方法直觀,但效率太低,因?yàn)槊恳徊叫枰淮胃↑c(diǎn)乘法和一次舍入運(yùn)算。 )(,;10yroundxbkxystepxxxxxx令數(shù)值微分(DDA)法計(jì)算yi+1= kxi+1+b = kxi+b+kx = yi+kx 當(dāng)x
46、 =1; yi+1 = yi+k o即:當(dāng)x每遞增1,y遞增k(即直線斜率);o注意上述分析的算法僅適用于k 1的情形。在這種情況下,x每增加1,y最多增加1。o當(dāng) k 1時(shí),必須把x,y地位互換數(shù)值微分(DDA)法o增量算法:在一個(gè)迭代算法中,如果每一步的x、y值是用前一步的值加上一個(gè)增量來(lái)獲得,則稱為增量算法。oDDA算法就是一個(gè)增量算法。數(shù)值微分(DDA)法void DDALine(int x0,int y0,int x1,int y1,CDC* pDC, COLORREF COLORREF aColoraColor) int x;float dx, dy, y, k;dx = x1-x
47、0; dy=y1-y0; k=dy/dx ; y=y0; for (x=x0; xx1; x+) pDC-SetPixel (x, int(y+0.5), acolor); y=y+k; 數(shù)值微分(DDA)法o例:畫直線段P0(0,0)-P1(5,2)x int(y+0.5) y+0.5000+0.5100.4+0.5210.8+0.5311.2+0.5421.6+0.5522.0+0.50 1 2 3 4 5321Line: P0(0, 0)- P1(5, 2)數(shù)值微分(DDA)法o缺點(diǎn): 在此算法中,y、k必須是float,且每一步都必須對(duì)y進(jìn)行舍入取整,不利于硬件實(shí)現(xiàn)。直線生成算法中點(diǎn)法
48、討論情況(直線斜率限定在討論情況(直線斜率限定在0-10-1之間)之間): :o 對(duì)于任意直線方程對(duì)于任意直線方程F(x,y)=ax+by+c=0,在高在高斯平面上將平面分為兩部分,上半部分斯平面上將平面分為兩部分,上半部分F(x,y)0,而下半部分,而下半部分F(x,y)0。如果想要。如果想要判定某個(gè)平面點(diǎn)在直線的上方還是下方,只判定某個(gè)平面點(diǎn)在直線的上方還是下方,只需要將其坐標(biāo)代入,而后看需要將其坐標(biāo)代入,而后看F(x,y)的值即可的值即可判定其位置。判定其位置。中點(diǎn)畫線法o原理:假定直線斜率0K P2離直線更近更近-取P2 。nM在Q的上方- P1離直線更近更近-取P1nM與Q重合, P
49、1、P2任取一點(diǎn)。n問題:如何判斷M與Q點(diǎn)的關(guān)系?P=(xp,yp)QP2P1中點(diǎn)畫線法假設(shè)直線方程為:ax+by+c=0其中a=y0-y1, b=x1-x0, c=x0y1-x1y0由常識(shí)知:欲判斷M點(diǎn)是在Q點(diǎn)上方還是在Q點(diǎn)下方,只需把M代入F(x,y),并檢查它的符號(hào)。點(diǎn)在直線下方點(diǎn)在直線上方點(diǎn)在直線上面0,0,0,yxFyxFyxFP=(xp,yp)QP2P1中點(diǎn)畫線法構(gòu)造判別式:d=F(M)=F(xp+1,yp+0.5) =a(xp+1)+b(yp+0.5)+c當(dāng)d0,M在直線(Q點(diǎn))上方,取右方P1;當(dāng)d=0,選P1或P2均可,約定取P1;能否采用增量算法呢?P=(xp,yp)QP2
50、P1中點(diǎn)畫線法若d0-M在直線上方-取P1;此時(shí)再下一個(gè)象素的判別式為 d1=F(xp+2, yp+0.5)=a(xp+2)+b(yp+0.5)+c = a(xp +1)+b(yp +0.5)+c +a =d+a; 增量為aP=(xp,yp)QP2P1中點(diǎn)畫線法o若dM在直線下方-取P2;o此時(shí)再下一個(gè)象素的判別式為 d2= F(xp+2, yp+1.5)=a(xp+2)+b(yp+1.5)+c = a(xp +1)+b(yp +0.5)+c +a +b =d+a+b ; 增量為abP=(xp,yp)QP2P1中點(diǎn)畫線法o畫線從(x0, y0)開始,d的初值d0=F(x0+1, y0+0.5)
51、= a(x0 +1)+b(y0 +0.5)+c = F(x0, y0)+a+0.5b = a+0.5b o由于只用d 的符號(hào)作判斷,為了只包含整數(shù)運(yùn)算, o可以用2d代替d來(lái)擺脫小數(shù),提高效率。中點(diǎn)畫線法void Midpoint Line (int x0,int y0,int x1, int y1,CDC* pDC, COLORREF COLORREF aColoraColor) int a, b, d1, d2, d, x, y; a=y0-y1; b=x1-x0; d=2*a+b; d1=2*a ; d2=2* (a+b); x=x0; y=y0; pDC-SetPixel(x, y,
52、aColor); while (xx1) if (dSetPixel (x, y, color); /* while */ /* mid PointLine */中點(diǎn)畫線法o例:用中點(diǎn)畫線法P0(0,0) P1(5,2)a=y0-y1=-2 b=x1-x0=5d0=2a+b=1 d1=2a=-4 d2=2(a+b)=6i xi yid1 0 012 1 0-33 2 134 3 1-15 4 250 1 2 3 4 5321o 如前所述,直線繪制的總步長(zhǎng)數(shù)一般如前所述,直線繪制的總步長(zhǎng)數(shù)一般取取dx,dydx,dy中絕對(duì)值較大者,如果較大中絕對(duì)值較大者,如果較大跨度者(假設(shè)在跨度者(假設(shè)在1a
53、1a向限,向限,dxdydxdy)步)步長(zhǎng)長(zhǎng)(Dx(Dx) )取為取為1 1,則另一個(gè)步長(zhǎng)(,則另一個(gè)步長(zhǎng)(DyDy)應(yīng)小于應(yīng)小于1 1。由于光柵化效應(yīng),畫點(diǎn)在。由于光柵化效應(yīng),畫點(diǎn)在整數(shù)位置,故整數(shù)位置,故y y 的位置只能取其最接的位置只能取其最接近的點(diǎn),如圖近的點(diǎn),如圖2.2所示。所示。o 設(shè)設(shè)d d1 1 ,d ,d2 2為:為:d d1 1=y-y=y-yi i;d;d2 2=y=yi+1i+1-y-yo 則有則有d d1 1dd2 2時(shí)時(shí)y y取取y yi i否則取否則取y yi+1i+1 直線Bresenham算法 直線Bresenham算法作業(yè)及答案 o1 DDA法生成直線的基
54、本原理是什么?o2 為什么說(shuō)Bresenham畫圓的算法效率較高?o3 為什么說(shuō)直線生成算法是二維圖形生成技術(shù)的基礎(chǔ)?o4 準(zhǔn)備下一節(jié)課實(shí)驗(yàn)的內(nèi)容圓的基本知識(shí) 圓的位圖下面僅以圓心在原點(diǎn)、半徑R為整數(shù)的圓為例,討論圓的生成算法。假設(shè)圓的方程為: X2 + Y2 = R2圓的基本知識(shí) 圓弧掃描算法X2 + Y2 = R2Y = Sqrt(R2 - X2)在一定范圍內(nèi),每給定一X值,可得一Y值。當(dāng)X取整數(shù)時(shí),Y須取整。缺點(diǎn):浮點(diǎn)運(yùn)算,開方,取整,不均勻。yx圓的逐點(diǎn)比較法算法o用逆時(shí)針畫第一象限中用逆時(shí)針畫第一象限中AB圓弧的過(guò)程如下:圓弧的過(guò)程如下:o從始點(diǎn)(從始點(diǎn)(Xa,Ya)開始,首先向)開
55、始,首先向(-X方向方向)圓內(nèi)走一步,然后比較圓內(nèi)走一步,然后比較o判斷結(jié)果,落在圓內(nèi)則向判斷結(jié)果,落在圓內(nèi)則向Y方向走一步,依次類推,一直到達(dá)圓外為方向走一步,依次類推,一直到達(dá)圓外為止止o當(dāng)判斷結(jié)果落在圓外時(shí),向當(dāng)判斷結(jié)果落在圓外時(shí),向X方向走一步,直到再次到達(dá)圓內(nèi)為止方向走一步,直到再次到達(dá)圓內(nèi)為止o當(dāng)畫到終點(diǎn)以(當(dāng)畫到終點(diǎn)以(XbXb,YbYb)時(shí),終止比較,結(jié)束。)時(shí),終止比較,結(jié)束。圓的逐點(diǎn)比較法算法0iF121111iiiiiiiXFFYYXX121111iiiiiiiYFFYYXXyx0iF圓的角度DDA法 x = x0 + Rcos y = y0 + Rsindx =- Rs
56、inddy = Rcosdxn+1 =x n + dxy n+1 =y n + dyxn+1 = x n + dx = x n - Rsind =x n - (y n - y 0 )dy n+1 = y n + dy = y n + Rcosd =y n + (x n - x 0 )do顯然,確定x,y的初值及d值后,即可以增量方式獲得圓周上的坐標(biāo),然后取整可得象素坐標(biāo)。但要采用浮點(diǎn)運(yùn)算、乘法運(yùn)算、取整運(yùn)算。生成圓弧的正負(fù)法 原理: 設(shè)圓的方程為F(x,y)=X2 + Y2 - R2=0;假設(shè)求得Pi的坐標(biāo)為(xi,yi);則當(dāng)Pi在圓內(nèi)時(shí)- F(xi,yi) 向右- 向圓外Pi在圓外時(shí)- F
57、(xi,yi)0 - 向下- 向圓內(nèi)生成圓弧的正負(fù)法即求得Pi點(diǎn)后選擇下一個(gè)象素點(diǎn)Pi+1的規(guī)則為:當(dāng)F(xi,yi) 0 取xi+1 = xi+1,yi+1 = yi;當(dāng)F(xi,yi) 0 取xi+1 = xi, yi+1 = yi - 1;這樣用于表示圓弧的點(diǎn)均在圓弧附近,且使F(xi,yi) 時(shí)正時(shí)負(fù),故稱正負(fù)法。快速計(jì)算的關(guān)鍵是F(xi,yi) 的計(jì)算,能否采用增量算法?生成圓弧的正負(fù)法o若F(xi,yi) 已知,計(jì)算F(xi+1,yi+1) 可分兩種情況:o1、F(xi,yi)0- xi+1 = xi+1,yi+1 = yi;o - F(xi+1,yi+1)= (xi+1 )2 +(yi+1 )2 -R2o - = (xi+1)2+ yi2 -R2 = F(xi,yi) +2xi +1o2、 F(xi,yi)0- xi+1 = xi,yi+1 = yi -1;o - F(xi+1,yi+1)= (xi+1 )2 +(yi+1 )2 -R2o - = xi2+(yi 1)2-R2 = F(xi,yi) - 2yi +1o3、初始值:略中點(diǎn)畫圓法利用圓的對(duì)稱性,只須討論1/8圓。第二個(gè)8分圓P為當(dāng)前點(diǎn)亮象素,那么,下一個(gè)點(diǎn)亮
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 土方供應(yīng)合同范本
- 公館購(gòu)房合同范本
- 加入商場(chǎng)合作合同范本
- 農(nóng)村柴火售賣合同范本
- 借用單位合同范本
- 個(gè)人頂賬房合同范本
- 單位裁員解聘合同范本
- 分體空調(diào)保養(yǎng)合同范本
- 勞務(wù)大工小工合同范本
- 公司貨物出口合同范本
- 2025年黑龍江農(nóng)業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案1套
- 有創(chuàng)動(dòng)脈血壓監(jiān)測(cè)
- 2025年國(guó)家林業(yè)和草原局管理干部學(xué)院招聘歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 全國(guó)導(dǎo)游基礎(chǔ)知識(shí)-全國(guó)導(dǎo)游基礎(chǔ)知識(shí)章節(jié)練習(xí)
- 2025年春季開學(xué)典禮活動(dòng)方案【哪吒版】少年無(wú)畏凌云志扶搖直上入云蒼
- 【安排表】2024-2025學(xué)年下學(xué)期學(xué)校升旗儀式安排表 主題班會(huì)安排表
- 四川省自貢市、遂寧市、廣安市等2024-2025學(xué)年高一上學(xué)期期末考試語(yǔ)文試題 含解析
- 22G614-1 砌體填充墻結(jié)構(gòu)構(gòu)造
- 2024年全國(guó)教育大會(huì)精神全文課件
- 人教版八年級(jí)下冊(cè)歷史教案全冊(cè)
- GB/T 44464-2024汽車數(shù)據(jù)通用要求
評(píng)論
0/150
提交評(píng)論