《计算机图形学》微课版 孔令德 三、填充多边形 期末复习

2023-11-04

多边形的定义
多边形是由折线段组成的平面封闭图形。

  1. 凸多边形

含有凸点的多边形称为凸多边形。凸点对应的内角小于180度。多边形上任意两顶点间的连线都在多边形之内

  1. 凹多边形

至少有一个凹点的多边形称为凹多边形。凹点对应的内角大于180度。多边形上任意两顶点间的连线有不在多边形内部的部分

多边形的表示

  1. 点元表示法

用多边形的顶点序列来表示多边形
特点是直观、几何意义强,易于图形变换,而且占用内存较少,但是不能区分多边形的内外部。
image.png

  1. 面元表示法

用位于多边形内部的像素点集来表示多边形
特点是可以明确多边形的内部区域,并将内部区域的像素点显示成要求的颜色,但是缺少多边形顶点的几何信息。
image.png

  1. 多边形的光栅化

将多边形的描述从点元表示法变换到面元表示法的过程,称为多边形的光栅化。

平面着色模式填充三角形(翻看教材了解)

有效边表算法

x扫描线算法

  1. 确定多边形所占有的最大扫描线数:得到顶点的最小和最大y值(ymin和ymax)。
  2. 从y=ymin到y=ymax每次用一条扫描线进行填充。

对每条扫描线的填充过程可分为以下4个步骤

  1. 求交:计算扫描线与多边形各个边的交点。
  2. 排序:将所有交点按x值的递增顺序排序。
  3. 配对:将交点按递增顺序两两配成区间对
  4. 填色:将区间对内的像素点设置成要求的颜色image.png

image.png
当扫描线y=1时,从边表中取出有效边,通过排序组成有效边表,将有效边表中的边的x值两两构成区间对填充,然后修改有效边的值:
image.png
如果ymax<ymin,则该边已经处理完,不再为有效边,将其从有效边表中删除。
扫描线y=1
image.png
扫描线y=2
image.png
当边表中的所有边都已经取出,而且有效边表也成为空表,说明所有边都已经处理,此时多边形内部全部填充完毕,扫描转换结束
image.png
注意:
y1为终点的y值 y0为起点的y值
k=(y1-y0)/(x1-x0)
教材有效边表表示方式:
image.png

image.png
桶表与边表
image.png

边填充算法

按任意顺序处理多边形的每条边。处理时,先求出该边与扫描线的交点,再对扫描线上交点右方的所有像素颜色取反。边缘填充算法思路简单,但对于复杂图形,每一像素可能被访问多次。

区域填充算法

区域填充要求区域是连通的。区域连通有四向连通区域和八向连通区域两种,四向连通区域指的是从区域上一点出发,通过上、下、左、右移动,即可到达区域内的任意像素;八向连通区域除了四向连通区域的四个方向外,还需要通过左上、右上、左下、右下这四个方向,才能到达区域内的任意位置。
image.png
八向连通算法可以填充四向连通区域,而四向连通算法有时不能填充八向连通区域。
image.png

image.png
两种边界,使用四向连通任何一种边界都能确保种子像素不会跨越边界。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《计算机图形学》微课版 孔令德 三、填充多边形 期末复习 的相关文章

  • AIX 上压缩与解压缩

    gz gzip d 或 gunzip gzip Z uncompress compress tar tar xvf tar cvf cpio cpio idumv zip unzip 或 jar xvf tar gz gzip dc tar

随机推荐

  • 心跳包实现的另一种机制

    因为工作关系 经常用到心跳包 之前是在服务端中的连接的实体中保持一个timer 每秒加一 每次服务端接到客户端的心跳 就会把计数置为0 当累加到20秒的时候 服务端会接到客户端抛出的掉线函数回调 就会视为客户端掉线 然后从缓存中删掉掉线用户
  • 一次性搞懂什么是AIGC!

    你知道什么是AIGC吗 不知道 没关系 我来告诉你 AIGC就是人工智能生成内容 Artificial Intelligence Generative Content 也就是让AI自己动手创作各种各样的内容 比如图片 视频 音乐 文字等等
  • DNSPod 查看域名解析的 domain_id 和 record_id

    本文介绍调用 API 获取 DNSPod 域名解析需要的 domain id 和 record id 参数的方法 所有的 DNSPod API 请求都必须提供 login token作为公共参数以验证用户身份是否合法 获取 login to
  • 软件版本命名规范

    1 版本命名规范 1 2 3 20190114 rc 由四部分组成 第一位 1 主版本号 当功能模块有较大的变动 比如增加多个模块或者整体架构发生变化 此版本号由项目决定是否修改 第二位 2 子版本号 当功能有一定的增加或变化 比如增加了对
  • [小程序实现保存图片到相册]

    保存图片到相册 实现逻辑 首先查看用户申请过的权限中是否有 保存图片到相册 如果没有这个权限 则需要先申请权限 弹窗授权 如果用户同意授权则保存图片 如果用户不同意 则跳转到设置页 重新授权 然后再保存图片 查看用户申请的全县有哪些 通过微
  • Httpservlet cannot be resolved to a type的原因与解决方法

    刚开始学习Servlet 在Eclipse中新建了一个Servlet 不过页面上报错 Httpservlet cannot be resolved to a type 显然是Eclipse找不到相应的包 即javax servlet 原因
  • 重建控制文件 recreate control file

    简单总结如下 1 启动到mount2 执行Alter database backup controlfile to trace 3 找到第2步生成的trace文件 并作相应修改 只保留创建语句4 shutdown并启动到nomount 执行
  • 2023备战金三银四,Python自动化软件测试面试宝典合集(二)

    马上就又到了程序员们躁动不安 蠢蠢欲动的季节 这不 金三银四已然到了家门口 元宵节一过后台就有不少人问我 现在外边大厂面试都问啥 想去大厂又怕面试挂 面试应该怎么准备 测试开发前景如何 面试 一个程序员成长之路永恒绕不过的话题 每每到这个时
  • DETR,YOLO模型计算量(FLOPs)参数量(Params)

    前言 关于计算量 FLOPs 参数量 Params 的一个直观理解 便是计算量对应时间复杂度 参数量对应空间复杂度 即计算量要看网络执行时间的长短 参数量要看占用显存的量 计算量 FLOPs FLOP时指浮点运算次数 s是指秒 即每秒浮点运
  • scrapy框架之item pipeline的使用

    转载 https blog csdn net kuangshp128 article details 80321099 一 关于scrapy中pipleline的基本认识 Item Pipeline又称之为管道 顾名思义就是对数据的过滤处理
  • 集线器端口上的电涌:一个USB设备超过其集线器端口的电源限制

    集线器端口上的电涌 一个USB设备超过其集线器端口的电源限制 花了三个小时查阅了大量资料 终于把这个问题大致弄清楚了 差点全盘格式化 主要是因为不认盘的缘故 以为分区表全部损坏 我一开始就怀疑是供电不足 当然以前也碰到过类似的情况 通常重启
  • MySQL数据库查询字符串数据格式之不足自动填充“0”字符以达到指定位数

    MySQL数据库查询字符串数据格式之不足自动填充 0 字符以达到指定位数 在MySQL数据库中 很多时候我们的数据会跟我们想要的输出结果有出入 例如在数据库中 如果我们保存的是1 但是我们需要他输出显示的是001 那就需要我们在数据1的前面
  • 【Linux】调试器:gdb 的基本使用

    文章目录 前序工作 readelf 基本操作 l 显示代码 list r 运行程序 开始调试 run b 打断点 breakpoint info b 查看 断点 information d 删除 断点 delete disable 关闭 断
  • Android 占位式插件化原理实现(三) 如何在插件APP中使用动态广播

    写在前面 前面实现了插件APP的Activity和Service的启动 今天咱来说一下动态广播的使用 还是老套路 使用宿主环境注册和发送 基于宿主Activity注入到插件Activity的Context 一 项目目录 新增文件 宿主APP
  • ai算子是什么_AI当自强:独家揭秘旷视自研人工智能算法平台Brain++

    转载自 机器之心 随着深度学习逐渐从实验室走向工业应用 各大企业都在探索构建算法架构 实现模型的工具和平台 和使用 TensorFlow 或 PyTorch 等开源框架的公司不同 旷视走向了一条自主研制的道路 建立了从算法研发到部署应用的全
  • 深度学习种 数据shuffle对模型性能的影响

    博客部分内容参照链接 https blog csdn net g b l article details 109600536 相同的两个目标检测实验 模型进行shuffle和未进行shuffle时训练的loss图 发现 未经shuffle的
  • servletresponse 获取返回结果_Java并发包源码分析:任务异步执行的结果Future和FutureTask...

    概述 Runnable任务在Executor线程执行器当中是异步执行的 而有些任务是需要返回执行结果的 故在Executor派生接口ExecutorService接口中定义了带返回结果的提交方法submit 其中返回结果为Future接口的
  • MySql 根据身份证号来判别所属省份年龄及性别

    一 背景 新项目要从别的系统迁移用户表信息 老的用户表里的数据有很多不规范的数据 需要通过表里的身份证号获取用户的省份 年龄 性别 二 获取方式 1 通过身份证号获取省份 SELECT CASE LEFT sfzh 2 WHEN 11 TH
  • 【无标题】线性自抗扰(LADRC)的stm32f1程序,实现用编码器反馈控制直流电机调速

    线性自抗扰 LADRC 的stm32f1程序 实现用编码器反馈控制直流电机调速 控制器采用加了TD的LADRC 控制效果良好 h和 c分开 代码清晰有注释编号 3230653714412755tbNick 9w978
  • 《计算机图形学》微课版 孔令德 三、填充多边形 期末复习

    多边形的定义 多边形是由折线段组成的平面封闭图形 凸多边形 含有凸点的多边形称为凸多边形 凸点对应的内角小于180度 多边形上任意两顶点间的连线都在多边形之内 凹多边形 至少有一个凹点的多边形称为凹多边形 凹点对应的内角大于180度 多边形