freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計算機圖形學實驗報告-展示頁

2024-11-04 12:35本頁面
  

【正文】 Prev=pts[t2].y。/*插入一個邊緣掃描線,插入到列表 */ }/*創(chuàng)建邊表的主體函數(shù)*/ void BuildEdgeList(int t,POINT *pts,Edge *edges[])/*建立新邊表,t:多邊形頂點個數(shù)+1,edges[]:指向活性邊結(jié)點的指針數(shù)組*/ { Edge *edge。/*縮短上層頂點*/ /*奇點,應(yīng)該把這點當作兩個點而分開,所以把y的最大值減一,向下移動*/ else edgeymax=。edgex=。return(pts[j].y)。/*當前頂點不是最后一個頂點,下一個頂點為數(shù)組下標加一*/ while(pts[k].y==pts[j].y)/*掃描線掃過平行頂點,需分情況找到當前頂點下下個頂點*/ if((j+1)(t1))j=0。if((k+1)(t1))/*當前頂點為最后一個頂點,則下一個頂點為第0個頂點 */j=0。/*使欲插入之結(jié)點edge指向q原來所指之結(jié)點*/ qnext=edge。p=pnext。/*記住q原來所指之結(jié)點*/ while(p!=NULL)/*按x值非遞減順序增加邊表*/ {if(edgexx)/*要插入的邊的x較大不應(yīng)該在當前插入*/p=NULL。/*將結(jié)點插入邊表的主體函數(shù)*/void InsertEdge(Edge *list,Edge *edge)/*活性邊edge插入活性邊表list中*/ { Edge *p,*q=list。typedef struct point{int x,y。/*從當前掃描線到下一條掃描線之間的x增量*/ struct tEdge *next。/* 邊所交的最高掃描線號 */ float x。l y增加1。l 遍歷AET表,將兩兩配對的交點之間填充給定顏色值。當多邊形新邊表ET構(gòu)成后,按下列步驟進行:① 對每一條掃描線i,初始化ET表的表頭指針ET[i]; ② 將ymax = i的邊放入ET[i]中;③ 使y =多邊形最低的掃描線號; ④ 初始化活性邊表AET為空; ⑤ 循環(huán),直到AET和ET為空。每條掃描線的活性邊表中的活性邊節(jié)點按照各活性邊與掃描線交點的x值遞增排序連接在一起。對每一條掃描線都建立一個與它相交的多邊形的活性邊表(AET)。為了提高效率,在處理一條掃描線時,僅對與它相交的多邊形的邊進行求交運算。如掃描線y=7上的交點中,有交點(2,7,13),按常規(guī)方法填充不正確,而要把頂點(7,7)兩次存入交點表中(2,7,7,13)。(4)著色:把相交區(qū)間內(nèi)的象素置成多邊形顏色,把相交區(qū)間外的象素置成背景色。所以,對所有的掃描線填充入點到出點之間所有的點就可填充多邊形。第一篇:計算機圖形學實驗報告實 驗 報 告一、實驗?zāi)康恼莆沼行蜻叡硭惴ㄌ畛涠噙呅螀^(qū)域;理解多邊形填充算法的意義;增強C語言編程能力。二、算法原理介紹根據(jù)多邊形內(nèi)部點的連續(xù)性知:一條掃描線與多邊形的交點中,入點和出點之間所有點都是多邊形的內(nèi)部點。判斷掃描線上的點是否在多邊形之內(nèi),對于一條掃描線,多邊形的掃描轉(zhuǎn)換過程可以分為四個步驟:(1)求交:計算掃描線與多邊形各邊的交點;(2)排序:把所有交點按x值遞增順序排序;(3)配對:第一個與第二個,第三個與第四個等等;每對交點代表掃描線與多邊 形的一個相交區(qū)間。p1,p3,p4,p5屬于局部極值點,要把他們兩次存入交點表中。p2,p6為非極值點,則不用如上處理。把與當前掃描線相交的邊稱為活性邊,并把它們按與掃描線交點x坐標遞增的順序存放在一個鏈表中,稱此鏈表為活性邊表(AET)。每個AET的一個節(jié)點代表一條活性邊,它包含三項內(nèi)容;; 。當掃描線y移動到下一條掃描線y = y+1時,活性邊表需要更新,即刪去不與新掃描線相交的多邊形邊,同時增加與新掃描線相交的多邊形邊,并根據(jù)增量法重新計算掃描線與各邊的交點x。l 將新邊表ET中對應(yīng)y值的新邊節(jié)點插入到AET表。l 遍歷AET表,將 ymax= y的邊節(jié)點從AET表中刪除,并將ymax y的各邊節(jié)點的x值遞增Δx;并重新排序。三、程序源代碼include “” define WINDOW_HEIGHT 480 define NULL 0 include “” include “” include “” include “” typedef struct tEdge /*typedef是將結(jié)構(gòu)定義成數(shù)據(jù)類型*/ { int ymax。/*當前掃描線與邊的交點的x值 */ float dx。}Edge。}POINT。p=qnext。else /*要插入的邊的x較小應(yīng)該在當前插入*/{q=p。} } edgenext=qnext。/*使q指向插入之結(jié)點*/ }int yNext(int k,int t,POINT *pts)/*對于多邊形中的某個頂點序號k(0,1...6),返回下一頂點的縱坐標,如果這2個頂點所在邊是 水平的,則順延,即返回第(k+2)個頂點的縱坐標),t是頂點個數(shù)+1,pts指向多邊形頂點結(jié)構(gòu)體的指針*/{ int j。elsej=k+1。elsej++。/*返回下一個頂點的y值 */ }/* 計算增量,修改AET*/ /*生成邊表結(jié)點,并插入到邊表中的主體函數(shù)*/ void MakeEdgeRec(POINT lower,POINT upper,int yComp,Edge
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1