日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机图形学有序边表作业,《计算机图形学》有序边表填充算法.docx

發布時間:2024/9/27 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机图形学有序边表作业,《计算机图形学》有序边表填充算法.docx 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實驗報告

實驗目的

1、掌握有序邊表算法填充多邊形區域;

2、理解多邊形填充算法的意義;

3、增強C語言編程能力。

算法原理介紹

根據多邊形內部點的連續性知:一條掃描線與多邊形的交點中,入點和出點之間所 有點都是多邊形的內部點。所以,對所有的掃描線填充入點到出點之間所有的點就可填 充多邊形。

判斷掃描線上的點是否在多邊形之內,對于一條掃描線,多邊形的掃描轉換過程可 以分為四個步驟:

(1)求交:計算掃描線與多邊形各邊的交點;

(2)排序:把所有交點按x值遞增順序排序;

(3)配對:第一個與第二個,第三個與第四個等等;每對交點代表掃描線與多邊 形的一個相交區間;

(4)著色:把相交區間內的象素置成多邊形顏色,把相交區間外的象素置成背景 色。

p1,p3,p4,p5屬于局部極值點,要把他們兩次存入交點表中。如掃描線y=7上的交

點中,有交點(2,7,13),按常規方法填充不正確,而要把頂點(7,7)兩次存入交點表中 (2,7,7,13)。p2, p6為非極值點,則不用如上處理。

為了提高效率,在處理一條掃描線時,僅對與它相交的多邊形的邊進行求交運算。 把與當前掃描線相交的邊稱為活性邊,并把它們按與掃描線交點x坐標遞增的順序存放 在一個鏈表中,稱此鏈表為活性邊表(AET)。

對每一條掃描線都建立一個與它相交的多邊形的活性邊表(AET。每個AET的一

個節點代表一條活性邊,它包含三項內容

x -當前掃描線與這條邊交點的x坐標;

△ x -該邊與當前掃描線交點到下一條掃描線交點的x增量;

ymax -該邊最高頂點相交的掃描線號。

每條掃描線的活性邊表中的活性邊節點按照各活性邊與掃描線交點的x值遞增排序

連接在一起。

當掃描線y移動到下一條掃描線y = y+1時,活性邊表需要更新,即刪去不與新掃 描線相交的多邊形邊,同時增加與新掃描線相交的多邊形邊,并根據增量法重新計 算掃描線與各邊的交點x。

當多邊形新邊表ET構成后,按下列步驟進行:

對每一條掃描線i,初始化ET表的表頭指針ET[i];

將ymax = i的邊放入ET[i]中;

使y=多邊形最低的掃描線號;

初始化活性邊表AET為空;

循環,直到AET和ET為空。

將新邊表ET中對應y值的新邊節點插入到AET表。

遍歷AET表,將兩兩配對的交點之間填充給定顏色值。

遍歷AET表,將ymax= y的邊節點從AET表中刪除,并將ymax> y的各邊節點 的x值遞增△ x;并重新排序。

y增加1。

三、程序源代碼

#in elude "graphics.h"

#defi ne WINDOW_HEIGHT 480

#define NULL 0

#i nclude "alloc.h"

#i nclude "stdio.h"

#i nclude "dos.h"

#i nclude "con io.h"

typedefstruct tEdge/*typedef是將結構定義成數據類型*/

{ int ymax;/*邊所交的最高掃描線號*/

float x;/*當前掃描線與邊的交點的x值*/

float dx;/*從當前掃描線到下一條掃描線之間的 x增量*/

struct tEdge *n ext;

}Edge;

typedef struct poi nt{int x,y;}POINT;/*將結點插入邊表的主體函數

typedef struct poi nt{int x,y;}POINT;

/*將結點插入邊表的主體函數*/

void In sertEdge(Edge *list,Edge *edge)/* {

Edge *p,*q=list;

p=q->n ext;/*

while(p!=NULL)/*

{

if(edge->xx) /* p=NULL;

else/*

{q=p; p=p->n ext;

}

}

edge->n ext=q->n ext; q->n ext=edge;

}

活性邊edge插入活性邊表list中*/

記住q原來所指之結點*/ 按x值非遞減順序增加邊表*/ 要插入的邊的x較大不應該在當前插入*/

要插入的邊的x較小應該在當前插入*/

/* 使欲插入之結點edge指向q原來所指之結點*/

/*使q指向插入之結點*/

int yNext(int k,int cnt,POINT *pts)

/*對于多邊形中的某個頂點序號k(0,1...6),返回下一頂點的縱坐標,如果這2 個頂點所在邊是 水平的,則順延,即返回第(k+2)個頂點的縱坐標),cnt是頂點個數 +1,pts指向多邊形頂點結構體的指針*/

{

int j;

if((k+1)>(cnt-1))/*當前頂點為最后一個頂點,則下一個頂點為第0個頂點*/

j=0;

e

總結

以上是生活随笔為你收集整理的计算机图形学有序边表作业,《计算机图形学》有序边表填充算法.docx的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 伊人网大香 | 久久9精品区-无套内射无码 | 超碰人人射 | 国产自产21区 | а√天堂资源在线 | 91捆绑91紧缚调教91 | 午夜精品福利一区二区蜜股av | 久久国产精品亚洲 | 丁香久久婷婷 | 无码人妻精品一区二 | 欧美日韩一区二区三区不卡 | 97精品视频在线观看 | 男人天堂视频在线观看 | www.波多野结衣.com | 欧美三级色图 | 涩涩天堂 | 欧美日韩国内 | 小草av| 18久久久 | 视频在线中文字幕 | 久久久久婷婷 | 最新国产在线 | 亚洲自拍偷拍色图 | 狠狠人妻久久久久久综合蜜桃 | 欧美第一精品 | 日韩无码精品一区二区三区 | 午夜视频在线观看视频 | 91丝袜呻吟高潮美腿白嫩 | 精品免费国产 | 97成人资源| 国内精品视频在线 | 日本男人的天堂 | 亚洲欧美日韩在线播放 | 青青草久久伊人 | 日日夜夜噜噜噜 | 欧美日韩看片 | av网站观看 | 波多野吉衣毛片 | 深夜福利成人 | 麻豆免费在线观看 | 最新国产黄色网址 | 国产精品综合久久久久久 | 成人不卡在线 | 蜜桃av网站 | 精品久久久久久亚洲 | 长河落日电视连续剧免费观看 | 国产精品入口麻豆九色 | 26uuu精品一区二区 | 天天躁日日躁aaaaxxxx | 看全色黄大色黄大片大学生 | 日本午夜精华 | 人妻无码一区二区三区四区 | 91豆花视频 | 欧美日韩亚洲一区二区 | 国产黄色精品网站 | 久久精选 | 激情都市一区二区 | 日本电影一区二区三区 | 狠狠躁夜夜躁人人爽视频 | 日本综合视频 | 黄网站免费在线观看 | 亚洲精品a区 | 日本不卡一 | av色噜噜| 三浦惠理子aⅴ一二三区 | 国产视频二区三区 | a视频免费在线观看 | 欧美一级在线视频 | 吻胸摸激情床激烈视频 | 免费看黄色一级片 | 欧美体内谢she精2性欧美 | 大陆av片 | 精品乱人伦一区二区三区 | 97在线影院 | 日韩在线一区视频 | 亚洲福利精品 | 67194国产| 久久福利免费视频 | 影音先锋国产 | 久久久视频6r | 成人性生活视频 | 在线视频麻豆 | 午夜免费片 | 免费在线成人av | 动漫一区二区三区 | 亚洲国产精品成人综合色在线婷婷 | 欧美精品1区2区3区 精品成人一区 | 男女av在线| 91操人视频| 国产美女久久久久久 | 久草成人在线 | 诱惑の诱惑筱田优在线播放 | 精品国产一区二区三区久久久蜜臀 | 亚洲调教欧美在线 | 色四虎| 99九九视频 | 精品欧美一区二区在线观看 | 久久久国产精品一区 | 久操这里只有精品 |