您所在位置: 网站首页 / 文档列表 / 图形图像 / 文档详情
计算机图形学实验1------Y-X扫描线填充.doc 立即下载
上传人:yy****24 上传时间:2024-09-09 格式:DOC 页数:11 大小:212KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

计算机图形学实验1------Y-X扫描线填充.doc

计算机图形学实验1------Y-X扫描线填充.doc

预览

免费试读已结束,剩余 1 页请下载文档后查看

16 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验一多边形彩色填充实验目的学习并掌握Y-X扫描线算法掌握基于Win32、VisualC++环境下MFC编程绘制图形实验原理对任一条扫描线,确定该扫描线与多边形边的交点位置,自左向右存储,并对每对内部交点间的帧缓存填写指定颜色算法步骤扫描线链表4.边表ET:初始化时建立全局边表(ET),包含多边形所有边,按边端点的ymin排序存放。即:若该边的下端点为ymin,则该边就放在扫描线ymin对应的链表中。每条扫描线交的多边形的边按其下端点的x坐标增序排列。5.活跃边表AET:与当前扫描线相交的边称为活性边,按与扫描线交点x坐标递增的顺序存放在一个链表中,称此链表为活性边表(AET)实验关键代码CPolyFill::CPolyFill(){m_pEDGEs=NULL;m_pET=NULL;m_pAET=NULL;MinY=10000;MaxY=-1;MinX=10000;MaxX=-1;}CPolyFill::~CPolyFill(){if(m_pEDGEs)delete[]m_pEDGEs;if(m_pET)delete[]m_pET;if(m_pAET)delete[]m_pAET;}//统计多边形各条边的信息,生成Edge结构。voidCPolyFill::BuildEDGEs(){if(m_pEDGEs){delete[]m_pEDGEs;m_pEDGEs=NULL;}m_pEDGEs=newEDGE[m_PtNum];for(inti=0;i<m_PtNum-1;i++){if(m_Pts[i].y>m_Pts[i+1].y){m_pEDGEs[i].Up=m_Pts[i];m_pEDGEs[i].Down=m_Pts[i+1];}else{m_pEDGEs[i].Up=m_Pts[i+1];m_pEDGEs[i].Down=m_Pts[i];}m_pEDGEs[i].EG.Ymax=m_pEDGEs[i].Up.y;m_pEDGEs[i].EG.X=m_pEDGEs[i].Down.x;m_pEDGEs[i].EG.Dx=double((m_pEDGEs[i].Up.x-m_pEDGEs[i].Down.x))/(m_pEDGEs[i].Up.y-m_pEDGEs[i].Down.y);}if(m_Pts[0].y>m_Pts[m_PtNum-1].y){m_pEDGEs[m_PtNum-1].Up=m_Pts[0];m_pEDGEs[m_PtNum-1].Down=m_Pts[m_PtNum-1];}else{m_pEDGEs[m_PtNum-1].Up=m_Pts[m_PtNum-1];m_pEDGEs[m_PtNum-1].Down=m_Pts[0];}m_pEDGEs[m_PtNum-1].EG.Ymax=m_pEDGEs[m_PtNum-1].Up.y;m_pEDGEs[m_PtNum-1].EG.X=m_pEDGEs[m_PtNum-1].Down.x;m_pEDGEs[m_PtNum-1].EG.Dx=double((m_pEDGEs[m_PtNum-1].Up.x-m_pEDGEs[m_PtNum-1].Down.x))/(m_pEDGEs[m_PtNum-1].Up.y-m_pEDGEs[m_PtNum-1].Down.y);}voidCPolyFill::Polygon(CPoint*pts,intcnt){m_Pts=pts;m_PtNum=cnt;BuildEDGEs();//计算出每条多边形边的斜率,Ymax,Xmin等。CreateET();//初始化全局边表InitAET();//初始化活跃边表}voidCPolyFill::CreateET(){GetMinMaxY(MinY,MaxY);if(m_pET){delete[]m_pET;m_pET=NULL;}m_pET=newCArray<Edge,Edge>[MaxY-MinY+1];//AddEDGEtoETfor(inti=0;i<m_PtNum;i++){intscanline=m_pEDGEs[i].Down.y-MinY;m_pET[scanline].Add(m_pEDGEs[i].EG);}//多边形的边排序:Sortaccording
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

计算机图形学实验1------Y-X扫描线填充

文档大小:212KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用