77范文网 - 专业文章范例文档资料分享平台

计算机图形学课后题答案--许长青、许志闻(3)

来源:网络收集 时间:2018-12-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

一个算法,输入多边形顶点坐标的逆时针序列,输出正确填写的ET表。

void CEdgeTable::Init(PointArray& ptArray) { Create(ptArray);//创建ET表,一个链表指针下只有一个吊桶 Sort();//对ET表中的吊桶按ymin由小到大排序 Merge();//排序后的ET表中的吊桶,若相邻吊桶有相同ymin,则相邻吊桶合并到同一个链表指针下

}

void CEdgeTable::Create(PointArray& ptArray) { int count=ptArray.GetSize (); CActiveEdgeTable* AET; for(int i=1;i<=count;i++){ if(ptArray[i-1].y !=ptArray[i%count].y )//去掉水平边 { if(((ptArray[i-1].y >=ptArray[i%count].y ) &&(ptArray[(i+1)%count].y >=ptArray[i%count].y)) ||((ptArray[i-1].y <=ptArray[i%count].y ) &&(ptArray[(i+1)%count].y <=ptArray[i%count].y))){ AET=new CActiveEdgeTable(ptArray[i-1],ptArray[i%count]);//局部极值点

}else{ AET=new CActiveEdgeTable(ptArray[i-1],ptArray[i%count],FALSE);//非局部极值点

} ETlist.Add (AET); } } }

void CEdgeTable::Sort(void) { int count=ETlist.GetSize (); CActiveEdgeTable* t; for(int a=1;a=a;--b){ if(ETlist[b-1]->ymin > ETlist[b]->ymin){ t=ETlist[b-1]; ETlist[b-1]=ETlist[b]; ETlist[b]=t; } } }

void CEdgeTable::Merge() {

CActiveEdgeTable *pre,*cur; for(int i=1;iymin == cur->ymin ){ pre->AETlist .Append(cur->AETlist); cur->AETlist .RemoveAll (); ETlist.RemoveAt(i); }else{ i++; } } }

9.多边形扫描转换的活跃边表算法如何处理给出顶点序列连成多边形时各边有相交的情况?如何处理多边形内部又有多边形空洞的情况?请举例说明。

当各边有相交的情况,在进行完x?x?1步骤之后,可能破坏了AET表中各项x坐m标的递增次序,故应按x坐标递增重新排序,正常填充。

当多边形内部又有多边形空洞的情况,依据区域的奇偶性质,以及局部极大局部极小的特点,正常填充。

自相交多边形 带有空洞的多边形

10.设五边形的五个顶点是(10.5,10.5),(15,5),(12,5),(8,2.5),(4,5.5),要利用使用活跃边表的扫描转换算法进行填充,写出应填写的ET表,写出活跃边表的变化情况。

e2

e3

e1

e4

e5

∧ ET:

Y吊桶表 … 6

13 ∧ 12 ∧ 11 ∧ 10 ∧ 9 ∧ 8 ∧ 7 e2 2e/∧ 5 7/5 3 11 56 11 141/∧ 3 -2/3 5 ∧ 4 ∧ e1 e5 3 6 8 -4/3 5 8 2 ∧ 2

∧ ymax xmin 1/m AET指针 初始化 ∧

e1 e5 扫描线3 扫描线4 扫描线5 扫描线6 扫描线7 扫描线8 扫描线9 扫描线10 扫描线11 扫描线12 ∧

6 8 e1 -4/3 5 5 5 8 e5 2 2 e5 ∧ ∧ ∧

6 62/3 -4/3 e1 6 51/3 -4/3 e1 6 4 e2 10 12 e3 2 -4/3 7/5 2 11 141/3 -2/3 ∧

e3 11 132/3 -2/3 ∧

e3 11 13 e3 11 52/5 e11 64/5 e2 7/5 7/5 2 -2/3 ∧

11 81/5 e11 121/3 -2/3 ∧

e3 11 112/3 -2/3 ∧

e3 11 11 -2/3 ∧

11 93/5 e2 7/5 7/5 11 11

12.修改画圆的Bresenham算法使能画出椭圆,设椭圆中心在坐标原点,长轴和短轴分别为a和b。

利用Bresenham画圆算法画椭圆

dyb2x??2?1 dxay令x?0,y?0

(1)在x?[0,x0]上,x0满足b2x0?a2y0,x?x?1,y值变化小于1。 (2)在x?[x0,a]上,x0满足b2x0?a2y0,y?y?1,x值变化小于1。 情况(1)如图

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机图形学课后题答案--许长青、许志闻(3)在线全文阅读。

计算机图形学课后题答案--许长青、许志闻(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/366940.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: