边相关扫描线填充算法
接着上篇博文《 多边形的扫描转换》
转载请注明出处:http://blog.csdn.net/xiaowei_cqu/article/details/7712451
多边形
边相关扫描线填充算法需要建立两张表:新边表(New Edge Table,NET)和 活动边表(Active Edge Table,AET)
新边表 NET
x 当前扫描线与边的交点坐标;dx从当前扫描线到下一条扫描线间x的增量((x2-x1)/(y2-y1));ymax 该边所交的最高扫描线
活动边表 AET
合并NET得到AET
边的扫描转换算法
- 1、根据给出的多边形顶点坐标,建立NET表;
- 求出顶点坐标中最大y值ymax和最小y值ymin。
- 2、初始化AET表指针,使它为空。
- 3、执行下列步骤直至NET和AET都为空.
- 3.1、如NET中的第y类非空,则将其中的所有边取出并插入AET中;
- 3.2、如果有新边插入AET,则对AET中各边排序;
- 3.3、对AET中的边两两配对,(1和2为一对,3和4为一对,…),
- 将每对边中x坐标按规则取整,获得有效的填充区段,再填充.
- 3.4、将当前扫描线纵坐标y值递值1;
- 3.5、如果AET表中某记录的ymax=yj,则删除该记录 (因为每条边被看作下闭上开的);
- 3.6、对AET中剩下的每一条边的x递增dx,即x' = x+ dx .
边相关扫描线填充算法相关推荐
- 多边形区域填充算法--扫描线填充算法(有序边表法)
来源:https://blog.csdn.net/u013044116/article/details/49737585 二.扫描线算法(Scan-Line Filling) 扫描线算法适合对矢量图形 ...
- 图形学扫描线填充算法
在上图形学课的时候,学习了扫描线填充算法.不过在完成实验的时候在真正理解了该算法,在此记录一下,如果有表达上的错误,欢迎指正! 扫描线填充算法通过在与图形相交的第(1,2).(3,4)... 边之间划 ...
- c语言图形学扫描线填充算法,《计算机图形学》OpenGL实现扫描线填充算法
顾名思义啊,就是在OpenGL中用扫描填充算法画一个稍微复杂的图形: #include #include #include #include #define COLOR_NEW 1.0,0.0,0.0 ...
- c++多边形扫描线填充算法_基于3DGIS技术的梯形格网构建及其简化算法设计
传统矢量地图LOD绘制流程包含简化.剖分与渲染三个步骤.由上述分析可知,传统矢量地图LOD绘制流程中简化与剖分是两个独立的过程,重复的剖分计算导致其渲染效率相对低下.梯形格网方法解决了传统方法中重复剖 ...
- CG-多边形扫描线填充算法详解
目录 1.基本思想 2.算法步骤 3.例题 4.算法的优缺点 1.基本思想 对于一个多边形,用一组水平或垂直的扫描线进行扫描,求出每条扫描线与多边形的交点,这些交点将扫描线分割线段,将 ...
- 计算机图形学--扫描线填充算法
目录 基本思想 有序边表思想 代码实现 基本思想 从图形的y最小值到y最大值依次进行y上的遍历,遍历的每个y=c这条直线称为扫描线.对于每条扫描线,多边形会和这条直线存在若干交点.这些交点中的之间的线 ...
- 扫描线填充算法(DDA应用)
欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击. 本期话题:给定多边形的边如何填充多边形内部区域 朴素做法 枚举法 枚举屏幕上的每一点,判断点是否在多边形内.点在多边形内判断方法 ...
- matlab多边形扫描线填充算法代码,计算机图形学—多边形扫描与填充
[实例简介] 包含了AET扫描算法.边界填充法.四连通种子算法 [实例截图] [核心代码] 63815b9f-1212-4c77-8732-11bf70c1ca86 └── 多边形扫描及填充 ├── ...
- c++多边形扫描线填充算法_基于MATLAB的道格拉斯普克算法递归实现
道格拉斯普克算法 (道格拉斯-普克)Douglas-Peukcer算法由D.Douglas和T.Peueker于1973年提出,是线状要素抽稀的经典算法.用它处理大量冗余的几何数据点,既可以达到数据量 ...
- 扫描线填充算法代码_手写算法并记住它:计数排序
对于经典算法,你是否也遇到这样的情形:学时觉得很清楚,可过阵子就忘了? 本系列文章就尝试解决这个问题. 研读那些排序算法,细品它们的名字,其实都很贴切. 比如计数排序,所谓"计数" ...
最新文章
- Android:展开/折叠动画
- 如何在Ruby中写入文件?
- 5G 信令流程 — MM 定时器
- Android 屏幕旋转时Activity的变化
- 如何修改elementUI里面Dialog组件标题的样式
- mysql怎么看实例名_南方“中看不中吃”的前4名水果,莲雾只是垫底,你怎么看?...
- java 创建数组工具类_用Java创建数组工具类ArrayTool
- 美团员工被指用钓鱼邮件获拼多多薪资;华为回应暂无其它手机厂商接入HarmonyOS;GCC 放弃版权转让政策|极客头条...
- Fast Marching on 3D Meshes
- 实战Python:利用Python实现基于终端的文本行编辑程序
- QTP教程入门到高级(转)
- 大气压力换算公式_大气压强计算新方法
- proteus——rs-232双机通讯
- 重置网络命令win7
- 打印后台处理程序服务怎么开启
- CVPR2019目标检测
- numpy的getA()/getA1()/getH()/getI()函数
- 10【Mybatis延迟加载】
- python-----定制群发微信消息
- RocketMQ-Retry
热门文章
- Oracle实例恢复
- html 制作静态页面新知识
- Squid 代理服务器
- Aria2 一键安装管理脚本 与Snap安装Nextcloud 与离线下载百度云
- Spring中都用到了那些设计模式
- (day9)357. 计算各个位数不同的数字个数
- insserv: warning: script 'lampp' missing LSB tags and overrides
- hdu 6205: card card card【输入挂】
- 一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app
- 斯坦福大学CS224d基础1:线性代数回顾