- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
矢量转换为栅格(面状)选编
多边形扫描转换与区域填充;在计算机图形学中,多边形有两种重要的表示方法:顶点表示和点阵表示。顶点表示是用多边形的顶点序列来表示多边形。这种表示直观、几何意义强、占内存少,易于进行几何变换,但由于它没有明确指出哪些象素在多边形内故不能直接用于面着色。点阵表示是用位于多边形内的象素集合来刻画多边形。这种表示丢失了许多几何信息,但便于帧缓冲器表示图形,是面着色所需要的图形表示形式。光栅图形的一个基本问题是把多边形的顶点表示转换为点阵表示。这种转换称为多边形的扫描转换。 ;逐点判断算法;扫描线算法 ;;对于一条扫描线,多边形的填充过程可以分为四个步骤:
(1)求交:计算扫描线与多边形各边的交点;
(2)排序:把所有交点按x值递增顺序排序;
(3)配对:第一个与第二个,第三个与第四个等等;每对交点代表扫描线与多边形的一个相交区间,
(4)填色:把相交区间内的象素置成多边形颜色,把相交区间外的象素置成背景色。; 减少求交计算量,采用活性边表。
对于一根扫描线而言,与之相交的边只占多边形全部边的一部分,每根扫描线与多边形所有边求交的操作是一种浪费,需要加以改进。
活性边表(Active List of Side)的采用将多边形的边分成两个子集:与当前扫描线相交的边的集合,以及与当前扫描线不相交的边的集合。
对后者不必进行求交运算,这样就提高了算法的效率。
;改进的有效边表算法;扫描线填充算法;0;扫描线填充算法;
#include stdio.h
#includestdlib.h
#include math.h
#define pi 3#include Conio.h
#include graphics.h
#include malloc.h
#define closegr closegraph
#define max 400
/*建立结构体类型数据Edge*/
typedef struct Edge{
int ymax;
float x,deltax;
struct Edge *nextEdge;
}Edge;
struct Edge *ET[max];
void initgr(void) /* BGI初始化 */
{int gd=DETECT,gm; /* 和gd=VGA,gm=VGAHI是同样效果 */
/* 注册BGI后可以驱动不需要.BGI文件的支持运行 */
initgraph(gd,gm,E:\\TC);
};/*得到多边形顶点*/
void GetST(float x[5],float y[5],float radius)
{int i;
float r;
setcolor(BLUE);
x[0]=300;
y[0]=100;
x[1]=100;
y[1]=200;
x[2]=200;
y[2]=300;
x[3]=400;
y[3]=400;
x[4]=500;
y[4]=200;
for(i=0;i5;i++)
{circle(x[i],y[i],1); fillellipse(x[i],y[i],1,1);
}
}
;void CreatET(float x[5],float y[5])
{int n;
Edge *e,*h;
n=y[0];
e=(Edge*)malloc(sizeof(Edge));
e-ymax=y[4];e-x=x[0];e-deltax=(x[4]-x[0])/(y[4]-y[0]);
h=(Edge*)malloc(sizeof(Edge));
h-ymax=y[1];h-x=x[0];h-deltax=(x[1]-x[0])/(y[4]-y[0]);
e-nextEdge=h;h-nextEdge=NULL;
ET[n]=e;
n=y[1];
e=(Edge*)malloc(sizeof(Edge));
e-ymax=y[2];e-x=x[1];e-deltax=(x[2]-x[1])/(y[2]-y[1]);
h=(Edge*)malloc(sizeof(Edge));
h-ymax=y[3];h-x=x[4];h-deltax=(x[3]-x[4])/(y[3]-y[4]);
e-nextEdge=h;h-nextEdge=NULL;
ET[n]=e;
n=y[2];
e=(Edge*)malloc(sizeof(Edge));
e-ymax=y[3];e-x=x[2];e-deltax=(x[3]-x[2])/(y[3]
您可能关注的文档
- 眼镜光学(最新)选编.ppt
- 真菌课件新人教版选编.ppt
- 眼镜行业竞争结构分析选编.ppt
- ZDY6000LD(F)型钻机使用手册综述.doc
- 着装和化妆礼仪选编.ppt
- 督导管理的十六条军规选编.ppt
- 督导技巧—提高管理成效的良方上课版选编.ppt
- 督导人员厂内训练选编.pptx
- ZFHSE.JL-030-01安全检查表(SCL)综述.doc
- 眼部常见病的超声诊断选编.ppt
- 各省试题英语中考.pdf
- 子牙科技介绍-咸阳机场.pdf
- 级书由bev osborn撰写画了一个兔子k 27a27-i draw bunnyA27.pdf
- 听说预备人people听力原文.pdf
- 白皮书与white optimizing-the video xenapp and xendesktop with anywhere优化.pdf
- accenture-世界强研究中心policy components 2010.pdf
- 1012the one with phoebes wedding1012举行菲比斯婚礼人.pdf
- 旅游委创意活动航空赞助方案合作策划.pdf
- 式英雄与超人原型文化价值论.pdf
- nmcli连接修改eno ipv4 addressestest答案.pdf
最近下载
- 电力设备公司产品制造车间生产定额计件工资实施办法.docx VIP
- 2023国有企业“三重一大”决策制度实施细则办法.pdf VIP
- 安徽大学《地球科学概论》课件-第4讲大气圈、冰冻圈、岩石圈.pptx VIP
- 国家开放大学(电大)《农业生态基础.》2020年09月春季期末考试真题及答案(试卷代号2794).pdf VIP
- 餐饮行业员工职业规划.pptx VIP
- 《数学数学期望》课件.ppt VIP
- 肾病内科专业疾病临床诊疗规范2025版.docx VIP
- 质量信得过班组培训课件.pptx VIP
- 《高级英语FacetoFacewithHurricaneCamille》-精选课件(公开).ppt VIP
- 高中化学课件:芳环上的亲核取代反应.pptx VIP
文档评论(0)