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

正文內(nèi)容

計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)報(bào)告-文庫(kù)吧

2024-11-04 12:35 本頁(yè)面


【正文】 geList(int t,POINT *pts,Edge *edges[])/*建立新邊表,t:多邊形頂點(diǎn)個(gè)數(shù)+1,edges[]:指向活性邊結(jié)點(diǎn)的指針數(shù)組*/ { Edge *edge。POINT v1,v2。int i,yPrev=pts[t2].y。/*當(dāng)前頂點(diǎn)的前一個(gè)頂點(diǎn)的y值,在當(dāng)前頂點(diǎn)不是奇點(diǎn)時(shí)使用該參數(shù)*/ =pts[t1].x。=pts[t1].y。for(i=0。iedge=(Edge *)malloc(sizeof(Edge))。edge=(Edge*)malloc(sizeof(Edge))。if(yNext*/ MakeEdgeRec(v1,v2,yNext(i,t,pts),edge,edges)。/*確定v1,v2邊較高端點(diǎn)的開(kāi)閉*/elseMakeEdgeRec(v2,v1,yPrev,edge,edges)。/*當(dāng)前頂點(diǎn)是奇點(diǎn)*/ } yPrev=。v1=v2。} }/*建立活性邊表的主體函數(shù):建立第scan條掃描線的活性邊表*/ void BuildActiveList(int scan,Edge *active,Edge *edges[])/*建立掃描線scan的活性邊表,把活性邊結(jié)點(diǎn)放入掃描線scan的結(jié)點(diǎn)指針數(shù)組 edges[scan]中*/ { Edge *p,*q。p=edges[scan]next。/*查找當(dāng)前掃描線對(duì)應(yīng)的y桶*/ while(p)/*y桶不空*/{q=pnext。/*找到最后一個(gè)邊結(jié)點(diǎn),插入*/InsertEdge(active,p)。/*把更新后的邊表重新插入邊表中保存*/p=q。} }/*填充一對(duì)交點(diǎn)的主體函數(shù)*/ void FillScan(int scan,Edge *active,int color)/*填充掃描線:填充掃描線上,且在下一結(jié)點(diǎn)到再下一結(jié)點(diǎn)之間的點(diǎn)*/ { Edge *p1,*p2。int i。p1=activenext。while(p1){p2=p1next。for(i=p1x。ix。i++)putpixel((int)i,scan,color)。/*畫(huà)出圖形內(nèi)部的點(diǎn)*/ p1=p2next。/*活性表的下一條邊表 */ } }void DeleteAfter(Edge *q)/*刪除鏈表中結(jié)點(diǎn),刪除邊結(jié)點(diǎn)q的后續(xù)結(jié)點(diǎn)p*/ { Edge *p=qnext。qnext=pnext。/*刪除結(jié)點(diǎn)*/ free(p)。} /* 刪除 y=ymax 的邊 *//*填充完后,更新活動(dòng)邊表的主體函數(shù)*/ void UpdateActiveList(int scan,Edge *active)/*刪除掃描線scan完成交點(diǎn)計(jì)算的活性邊,同時(shí)更新交點(diǎn)x域*/ { Edge *q=active,*p=activenext。while(p)if(scan=pymax)/*掃描線超過(guò)邊的最大y值,此條邊的節(jié)點(diǎn)應(yīng)該刪掉*/ { p=pnext。deleteAfter(q)。} else /*掃描線未超過(guò)邊的最大y值,相應(yīng)的x值增加*/ { px=px+pdx。q=p。p=pnext。} }/*對(duì)活性邊表結(jié)點(diǎn)重新排序的主體函數(shù)*/ void ResortActiveList(Edge *active)/*活性邊表active中的結(jié)點(diǎn)按x域從小到大重新排序*/ { Edge *q,*p=activenext。activenext=NULL。while(p){q=pnext。InsertEdge(active,p)。/*把更新后的邊表重新插入邊表中保存 */ p=q。} }/*多邊形填充的主體程序*/ void ScanFill(int t,POINT *pts,int color)/*填充函數(shù),輸入:多邊形頂點(diǎn)個(gè)數(shù)+1=t, 指向多邊形頂點(diǎn)的指針數(shù)組pts*/{ Edge *edges[WINDOW_HEIGHT],*active。int i,scan,scanmax=0,scanmin=WINDOW_HEIGHT。for(i=0。i{if(scanmaxif(scanminpts[i].y)scanmin=pts[i].y。} for(scan=scanmin。scanedges[scan]next=NULL。} BuildEdgeList(t,pts,edges)。/*建立有序邊表*/ active=(Edge *)malloc(sizeof(Edge))?!巴啊?/ activenext=NULL。for(scan=scanmin。scanBuildActiveList(scan,active,edges)。/*建立活性邊表*/if(activenext)/*活性邊表不為空*/{ FillScan(scan,active,color)。/*填充當(dāng)前掃描線*/ UpdateActiveList(scan,active)。/*更新活化邊表*/ ResortActiveList(active)。/*重排活化邊表*/} } }/*開(kāi)始菜單*/ void main(){ POINT pts[7]。/*保存數(shù)組*/ int gdrive=DETECT,gmode。pts[0].x=100。pts[0].y=40。/*多邊形頂點(diǎn)x、y坐標(biāo)*/ pts[1].x=220。pts[1].y=140。pts[2].x=280。pts[2
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1