實(shí)驗(yàn)報告5多邊形裁剪與填充要點(diǎn)_第1頁
實(shí)驗(yàn)報告5多邊形裁剪與填充要點(diǎn)_第2頁
實(shí)驗(yàn)報告5多邊形裁剪與填充要點(diǎn)_第3頁
實(shí)驗(yàn)報告5多邊形裁剪與填充要點(diǎn)_第4頁
實(shí)驗(yàn)報告5多邊形裁剪與填充要點(diǎn)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

(1)計算機(jī)辦理圖形的過程一般分為三個階段:①圖形的數(shù)字化;②圖形操作;③圖形輸((2)模型坐標(biāo)系(局部坐標(biāo)系):當(dāng)結(jié)構(gòu)單個對象的數(shù)字模型時,為了方便,能夠?qū)⑵渲靡粋€特定(3)世界坐標(biāo)系:為描述圖形場景中全部圖形之間的空間關(guān)系,將它們置于一個一致的坐標(biāo)裁剪作用:選擇顯示的內(nèi)容--圖形在窗口內(nèi)的部分被顯示出來,窗口外的部分被裁剪掉。圖形中每個基本元素都要經(jīng)過裁剪,所以裁剪直接影響整個圖形系統(tǒng)的效率。裁剪種類:二維裁剪、三維裁剪視見體:棱臺、立方體(1)多邊形的填補(bǔ)指在給定地區(qū)填上所需要的顏色,就是把多邊形的極點(diǎn)表示變換為點(diǎn)陣表示,即從多邊形的給定界限出發(fā),求出位于其內(nèi)部的各個像素,并將幀緩沖器內(nèi)的各個對應(yīng)元素設(shè)置相應(yīng)的灰度或顏色。1)極點(diǎn)表示是用多邊形的極點(diǎn)的序列來描述多邊形,該表示幾何意義2)點(diǎn)陣表示是用位于多邊形內(nèi)的象素的會合來刻劃多邊形,該方法固然沒有多邊形的幾何(3)若線段既不知足“取”的條件,也不知足“棄”的條2)完整在窗口外的線段,稱為完整不行見線第二步辦理不可以判定為完整可見或完整不行見的線段。對余下部分再作第一步的判斷,重復(fù)上述過程,直到直線段余下的部分可用第一步的判斷得出必yi),0≤i≤n,xi,yi均為整數(shù);置Pn+1=P0。每一條掃描線上著上這類特別顏色的點(diǎn)的個數(shù)必定是偶數(shù)(包含零)。b.設(shè)interior_point是一布爾變量。對每一條掃描線從左到右進(jìn)行搜尋,假如目前是像素位a.地區(qū)是指已經(jīng)表示成點(diǎn)陣形式的像素會合。在光柵圖形中,地區(qū)可采納內(nèi)點(diǎn)表示和界限內(nèi)點(diǎn)表示法:把位于給定地區(qū)內(nèi)的全部像素一一列舉出來的方法稱為內(nèi)點(diǎn)表示法。界限表示法:把位于給定地區(qū)界限上的像素一一列舉出來的方法稱為界限表示法。1)連通的地區(qū):取地區(qū)內(nèi)隨意兩點(diǎn),在該地區(qū)內(nèi)若從此中一點(diǎn)出發(fā)經(jīng)過上、下、左右四2)連通的地區(qū):取地區(qū)內(nèi)隨意兩點(diǎn),若從此中任一點(diǎn)出發(fā),在而后確立與這一段相鄰的上下兩條掃描線上位于地區(qū)內(nèi)的區(qū)段(需要填補(bǔ)的區(qū)間),從這些區(qū)間上各取一個種子點(diǎn)挨次把它們存起來,作為下次填補(bǔ)的種子點(diǎn)。頻頻進(jìn)行這過程,直用新的顏色值進(jìn)行填補(bǔ),直到界限為止即象素顏色等于界限色。設(shè)區(qū)間兩界限的橫坐標(biāo)分別{intc=0;}{{}{if((c&8)==8)//求交點(diǎn){}{}{y=y0+wy*(xL-x0)/wx;x=xL;{}{}else//終點(diǎn)不在窗口內(nèi),交點(diǎn)作為新的終點(diǎn){}}}//把新結(jié)點(diǎn)插入有序擺列的多邊形單鏈表/*排序第一重點(diǎn)字結(jié)點(diǎn)的topx,第二重點(diǎn)字結(jié)點(diǎn)的delta*//*兩個重點(diǎn)字由小到大*/}}}}}}}//插入新結(jié)點(diǎn)結(jié)束//把新結(jié)點(diǎn)作為多邊形鏈表的頭結(jié)點(diǎn)或許尾結(jié)點(diǎn)}}}//兩個多邊形單鏈表的歸并:自己單鏈表與list單鏈表的歸并elseif(a==null){//自己為空表}}}}/*兩個表都不空*/if(xa<=xb){//決定歸并后兩個表的先后}}}}}//單鏈表歸并結(jié)束//刪除多邊形單鏈表的結(jié)點(diǎn)}}}//多邊形單鏈表的相鄰結(jié)點(diǎn)while(p!=null){if(q.x<p.x){//多邊形單鏈表相鄰結(jié)點(diǎn)的x坐標(biāo)要由小到大}r=p;//指向尾結(jié)點(diǎn)}//****定*義直線類}//**********義多邊形的填補(bǔ)類*******////掃描行辦理用數(shù)據(jù)//鼠標(biāo)最先點(diǎn)擊//雙擊標(biāo)記//鼠標(biāo)最先點(diǎn)擊//雙擊標(biāo)記//單擊標(biāo)記//畫圖地區(qū)//多邊形的畫圖數(shù)據(jù)}//成員變量初始化}}}//變換第i個向量//把多邊形極點(diǎn)數(shù)據(jù)生成邊結(jié)點(diǎn)for(inti=0;i<numEdge;i++)//每個邊的單鏈表頭結(jié)點(diǎn)/*四個極值用于確立顯示圖像的大小和范圍*/intLARGE=0x0ffffffff;for(inti=0;i<numEdge;i++){//對每個邊結(jié)點(diǎn)數(shù)組賦值intix1=m.getX(l.x1);//將用戶坐標(biāo)的點(diǎn)變換到JavaAWT坐標(biāo)if(iy1>iy2){//邊的斜向if(iy2<ymin){//進(jìn)行yMinyMax計算}if(iy1>ymax){}}elseif(iy1<iy2){//邊的斜向計算if(iy1<ymin){//進(jìn)行yMinyMax計算}if(iy2>ymax){}}if(iy1<ymin){//進(jìn)行yMinyMax計算}if(iy1>ymax){}}計算if(ix1<ix2){//進(jìn)行xMinxMax計算if(ix1<xmin){}if(ix2>xmax){}}if(ix2<xmin){}if(ix1>xmax){}}if(ix1<xmin){}if(ix1>xmax){}}/*內(nèi)存圖像的數(shù)組空間及有關(guān)數(shù)據(jù)*/if(bucket[yt]==null){//該行未成立鏈表}}//多邊形的掃描變換if(bucket[y]!=null){//該指針元素存在}}//多邊形的掃描變換//辦理給定行的邊鏈表intxleft,xright;xleft=(int)xl;if(xleft<=xright)if(left.boty>=y-1&&right.boty>=y-1){if(xleft<=xright)}if(left.boty>=y-1)//將if(right==null)//邊鏈表的結(jié)點(diǎn)數(shù)必定為偶數(shù)}//辦理給定行的邊鏈表//成立指定行的邊鏈表}//填補(bǔ)何種圖案}//設(shè)定像素顏色publicvoidputPixel(inti,intj){intr,g,b;}/*圖像的i行j列處的顏色*/}//填補(bǔ)指定行的像素列publicvoidfillScanline(intxleft,intxright,inty){}//------多邊形填補(bǔ)總控程序----}//響應(yīng)鼠標(biāo)擊鍵事件if(isPolygonMode){//正在進(jìn)行多邊形填補(bǔ)if(e.getClickCount()>=2){//雙擊,增添多邊形的極點(diǎn)/*給光柵向量表增添一行,這個向量成員方法致使編譯要加上參數(shù)-Xlint,會出現(xiàn)警示錯誤*/}}if(isFirstClicked){//首次點(diǎn)擊}/*ixiy所對應(yīng)的用戶坐標(biāo)系下的坐標(biāo)*//*給光柵向量表增添一行*/}}}//響應(yīng)鼠標(biāo)擊鍵事件//響應(yīng)鼠標(biāo)挪動事件

溫馨提示

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

評論

0/150

提交評論