上海師范大學(xué)計算機圖形學(xué)第二章.ppt
《上海師范大學(xué)計算機圖形學(xué)第二章.ppt》由會員分享,可在線閱讀,更多相關(guān)《上海師范大學(xué)計算機圖形學(xué)第二章.ppt(66頁珍藏版)》請在裝配圖網(wǎng)上搜索。
二 繪圖函數(shù)1 點voidputpixel intx inty intcolor color符號名 取值為0 15voidmoveto intdeltax intdeltay 例題 當前坐標CPputpixel 100 200 5 100 200 moveto 50 30 50 30 moverel 10 20 60 50 intgetx void intgety void 2 直線voidline intx0 inty0 intx1 inty1 當前坐標 x y voidlineto intx inty voidlinerel intdeltax intdeltay 當前坐標 x deltax y deltay 例題 arc 40 40 0 120 30 3 矩形voidrectangle intleft inttop intright intbottom 左上角坐標 left top 右下角坐標 right bottom 5 多邊形 voiddrawpoly intnumpoints int polypoints numpoints 為多邊形的頂點數(shù)polypoints 各頂點坐標的整數(shù)序列共有2 numpoints個整數(shù) 若第一個點和最后一個點坐標相同 則畫出封閉多邊形 否則為多邊形折線 多邊形例題 intp 2 6 45 50 75 30 85 75 180 65 70 5 45 50 drawpoly 6 p 45 50 三 顏色控制 1 voidsetbkcolor intcolor 默認色為黑色2 voidsetcolor intcolor 設(shè)置當前畫線顏色 默認色為白色 15 3 intgetbkcolor void 返回當前背景色4 intgetcolor void 返回當前繪圖顏色5 intgetpixel intx inty 4 圓 圓弧和橢圓voidcircle intx inty intradius voidarc intx inty intstangle intendangle intradius 起始角stangle 終止角endangle0 360 voidellipse intx inty intstangle intendangle intxradius intyradius 從起始角stangle開始畫橢圓弧至終止角endangle xradius yradius分別為方向x y的半徑 0BLACK1BLUE2GREEN3CYAN4RED5MAGENTA6BROWN7LIGHTGRAY 8DRAKGRAY9LIGHTBLUE10LIGHTGREEN11LIGHTCYAN12LIGHTRED13LIGHTMAGENTA14YELLOW15WHITE 6 voidsetlinestyle intlinestyle unsignedupattern intthickness Linestyle取值 SOLID LINE0實線DOTTED LINE1點線CENTER LINE2中心線DASHED LINE3虛線USERBIT LINE4用戶定義的線upattern僅在userbit line時起作用 thickness線寬NORM WIDTH1一個象素寬THICK WIDTH3三個象素寬 例題 setlinestyle DASHED LINE 0 THICK WIDTH 或setlinestyle 3 0 3 line 300 50 300 200 上機作業(yè)2 畫出如下圖形 第二章基本圖形的生成和計算 如何在指定的輸出設(shè)備上描述構(gòu)造基本二維幾何圖形 點 直線 圓 橢圓 多邊形 字符串及其相關(guān)屬性等 2 1直線的生成算法 圖形的掃描轉(zhuǎn)換 在光柵顯示器等數(shù)字設(shè)備上確定一個最佳逼近于圖形的象素集的過程 用一系列的象素點來逼近直線 2 1直線的生成算法 2 1 1直線DDA算法 DigitalDifferentialAnalyser 設(shè)直線起點 x1 y1 終點 x2 y2 則斜率mm y2 y1 x2 x1 dy dx dy dx Dy Dxxi 1 xi Dxyi 1 yi DyDy m Dx x y 1b 1a 4a 4b 3b 3a 2a 2b xi 1 xi 1yi 1 yi m xi 1 xi 1yi 1 yi m x1 y1 x2 y2 O xi 1 xi 1 myi 1 yi 1 象限D(zhuǎn)xDy象限D(zhuǎn)xDy1a1m4a1 m1b1 m14b1 m 12a 1m2b 1 m13a 1 m3b 1 m 1結(jié)論 1 當 m 1時 Dx 1 Dy m否則 Dx 1 m Dy 1 結(jié)論 2 Dx Dy的符號與dx dy的符號相同 缺點 1 浮點增量的連續(xù)迭加 誤差積累使長線段計算的象素位置偏離實際線段2 浮點運算十分耗時 1965年由Bresenham提出設(shè)直線起點 x1 y1 終點 x2 y2 y mx bb y1 m x1m y2 y1 x2 x1 dy dx 2 1 2直線Bresenham算法 13 12 11 10 10 11 12 13 11 11 12 11 或 12 12 當直線方向限于1a象限 x1 y1 x2 y2 當直線方向限于1a象限 則xi 1 xi 1yi 1 yi 1 yi 13 12 11 10 10 11 12 13 xi yi x1 y1 x2 y2 Bresenham算法采取對整型參量的符號進行檢測 整型參量的值正比于兩象素與實際線段之間的偏移yi 1的選擇由d1 d2的大小決定 如d1 d2 則yi 1 yi 1 否則yi 1 yid1 y yid2 yi 1 y d1 d2 2y 2yi 1y m xi 1 bm dy dx d1 y yid2 yi 1 y d1 d2 2dy dx xi 1 2b 2yi 1兩邊 dx 令Pi d1 d2 dx則Pi 2dy xi 1 2b dx 2yi dx dx 2xidy 2yidx 2dy 2b 1 dx 由于dx 0 則Pi可用來判斷符號Pi 1 2xi 1dy 2yi 1dx 2dy 2b 1 dx 2 xi 1 dy 2yi 1dx 2dy 2b 1 dx Pi 2dy 2yi 1dx 2yidx Pi 2dy 2 yi 1 yi dx Pi 2xidy 2yidx 2dy 2b 1 dx P1 2x1dy 2y1dx 2dy 2b 1 dx 2x1dy 2y1dx 2dy 2 y1 dy dx x1 1 dx 2x1dy 2y1dx 2dy 2y1dx 2x1dy dx 2dy dx Pi 2xidy 2yidx 2dy 2b 1 dxb y1 m x1 1 畫點 x1 y1 dx x2 x1dy y2 y1P1 2dy dxi 12 xi 1 xi 1當Pi 0 則yi 1 yi 1 否則yi 1 yi3 畫點 xi 1 yi 1 畫線步驟 P1 2dy dx 4 求Pi 1 當Pi 0則Pi 1 Pi 2dy 2dx否則Pi 1 Pi 2dy5 i i 1如i dx 1則轉(zhuǎn)2否則結(jié)束 優(yōu)點1 不做除法2 只用整數(shù)3 只有整數(shù)加減和乘2運算 例 起點 20 10 終點 30 18 斜率0 8dx 10 dy 8P1 2dy dx 2 8 10 6iPi xi 1 yi 1 123 iPi xi 1 yi 1 45678910 例 起點 20 10 終點 30 18 斜率0 8dx 10 dy 8P1 2dy dx 2 8 10 6iPi xi 1 yi 1 16 21 11 22 22 12 3 2 23 12 iPi xi 1 yi 1 414 24 13 510 25 14 66 26 15 72 27 16 8 2 28 16 914 29 17 1010 30 18 Bresenham畫法對任意斜率的線段具有通用性 當m 0 且m 1 則交換x y之間規(guī)則 2 2圓的生成算法 2 2 1基礎(chǔ)知識設(shè)圓心坐標 xc yc 半徑r1 直角坐標法 x xc 2 y yc 2 r2 y yc r2 x xc 2 1 2x xc從 r r作加1遞增 可求出y坐標但圓周上的點不均勻即象素位置間的間距不一致 2 2圓的生成算法 2 極坐標法x xc rcos y yc rsin r 0 4 利用對稱法則 2 2圓的生成算法 2 2 2圓的Bresenham算法Bresenham圓算法通過比較象素與圓的距離的平方而避免了平方根運算 設(shè)圓心坐標 0 0 半徑為r起點 0 r 順時針方向1 8圓周xi 1 xi 1yi 1 yi或yi 1 yi 1 x y xi xi 1 yi y yi 1 d21 2 d11 2 2 2圓的生成算法 y2 r2 xi 1 2d1 yi2 y2 yi2 r2 xi 1 2d2 y2 yi 1 2 r2 xi 1 2 yi 1 2令Pi d1 d2 2 xi 1 2 yi2 yi 1 2 2r2Pi 1 Pi 4xi 6 2 yi 12 1 yi2 2 yi 12 1 yi2 當P 0 則yi 1 yi 否則yi 1 yi 1 2 2圓的生成算法 Pi 1 2 xi 2 2 yi 12 yi 1 1 2 2r2 2 xi 1 2 4xi 6 yi 12 yi 1 1 2 2r2 Pi 4xi 6 yi2 yi 1 2 yi 12 yi 1 1 2 Pi 4xi 6 2 yi 12 yi2 2 yi 1 yi 當P1 x1 0 y1 r P1 2 r2 r 1 2 2r2 3 2r 2 3區(qū)域填充算法 2 3 1基本知識1 區(qū)域填充定義 給出一個區(qū)域的邊界 要求對邊界范圍內(nèi)的所有象素單元賦予指定的顏色代碼 最常用的是多邊形填色 2 3區(qū)域填充算法 2 數(shù)學(xué)方法 掃描交點的奇偶數(shù)判斷法1 將多邊形畫在平面上2 用一根水平掃描線從左到右通過多邊形 從而與多邊形的邊界相交 掃描線與邊界相交奇數(shù)次后進入多邊形 偶次數(shù)后走出多邊形 A B C 錯判 錯判 錯判 1 掃描線填色算法 按掃描線順序計算掃描線與多邊形的相交區(qū)間 再用要求的顏色或圖案顯示這些區(qū)間的象素 需提供多邊形各頂點的坐標 填色算法 2 種子填色算法 要求給出邊界顏色特征區(qū)域內(nèi)的一個點的坐標 2 3 2掃描線填色算法 1 用水平掃描線由上往下掃描多邊形2 每根掃描線與多邊形各邊產(chǎn)生一系列交點 采用遞歸算法3 將交點按x坐標進入分類 將分類后的交點成對取出 作為兩個端點 以所需要填的色彩畫水平直線 掃描線與邊的求交點方法采用遞歸算法 以 x1 y1 x2 y2 為端點的邊與第i 1條掃描線的交點 yi 1 yi 1 xi 1 xi x2 x1 y2 y1 即xi 1 xi 1 m yi x2 y2 Pi xi yi x1 y1 左右頂點處理 以1 2 3次序畫多邊形外框 左頂點2 y1 y2 y3 右頂點2 y1 y2 y3 一個頂點同屬于多邊形兩條邊的端點 如果所交的頂點是左頂點或右頂點 填色因掃描交點的奇偶計數(shù)出錯而出現(xiàn)錯誤 解決方法 刪去左右頂點的入邊的終點 即1 2邊 2 3 2 對于左頂點 x1 y1 x2 y2 改為 x1 y1 x2 1 m y2 1 對于右頂點 x1 y1 x2 y2 改為 x1 y1 x2 1 m y2 1 刪去水平邊 1 2 3 1 2 3 水平邊處理 刪去水平邊 2 3 3種子填色算法 已知多邊形邊界位置及顏色以及多邊形內(nèi)的一點 x y 位置 x y 方法 1 從 x y 開始檢測相鄰位置以確定它們是否是邊界顏色 若不是 則用填充顏色涂色 并檢測其相鄰位置 2 直至檢測完所有象素 常用的 四鄰法和八鄰法 四鄰法不能通過狹窄區(qū)域 種子填色算法 voidseed filling x y fill color boundary color intx y fill color boundary color intc c inquire color x y if cboundary color 種子填色算法 種子填色算法 上 下 左 右- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 上海師范大學(xué) 計算機 圖形學(xué) 第二


鏈接地址:http://m.kudomayuko.com/p-10988497.html