【计算机图形学】期末笔记

简介: 【计算机图形学】期末笔记

😘欢迎关注:👍点赞🙌收藏✍️留言

🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢支持!!!

相关资源

【计算机图形学】期末考试复习总结

计算机图形学 期末复习笔记_计算机图形学期末复习-CSDN博客

1 一般直线画法

总结

  • 思路:使用斜截式方程,已知两点确定一条直线,k可以通过(y1-y0)/(x1-x0)得出,之后随着x每次前进一个像素,都可以计算出对应的y
  • y值的处理:对于y的取值需要取整,但是要避免误差太大,比如1.8取整为1,1.8其实离2更近一些,所以需要加上0.5来减小误差
  • 算法效率:不高,因为在计算机中效率最高的是加法
  • 缺点:算法效率不高

2 数值微分分析法(DDA)画直线

总结

  • 思路:这个DDA算法的主要思想是“增量思想”,通过公式等价换算,得出y(i+1) = y(i)+k
  • y值的处理:对于y的取值需要取整,但是要避免误差太大,比如1.8取整为1,1.8其实离2更近一些,所以需要加上0.5来减小误差
  • 算法效率:较高,都是加法运算
  • 缺点:1.当k>1时,光栅点的数量太少 2.加法大多数是整数加法

3 中点画线法

中点画线法 画直线

  • 怎么确定下一个像素点?

  • 怎么知道Q在M的上面还是下面?

  • 算法效率?

  • 能否优化?

总结
  • 思路:
  • 使用一般式方程,通过Ax+By+C=F(x,y)
  • 当点在直线上方时,F(x,y)>0,否则小于0,并且借此来确定下一个像素点
  • 当实际的值在两个像素点之间的时候,通过判断中点在直线的上方还是下方来判断直线离哪个像素点近
  • 如果中点在直线下面说明要取上面那个像素点(y+1),否则取下面像素点(y不变),这样y的取值就变成了是否+1的判断
  • 但是这样的运算效率并不高,因为有两个乘法和四个加法
  • 那就继续优化
  • 通过优化得:
  • d(0)=A+0.5B 当d(i)<0时,d(i+1)=d(i)+A+B; 当d(i)>=0时,d(i+1)=d(i)+A;
  • 这样通过判断d的正负就可以判断y是否+1
  • 还可以优化的一点是,可以使用2d来代替d,这样就可以摆脱浮点运算,只有整数运算了,反正只需要判断正负号即可
  • y值的处理:对于y的取值需要取整,但是要避免误差太大,比如1.8取整为1,1.8其实离2更近一些,所以需要加上0.5来减小误差
  • 算法效率:较高,至少可以像DDA算法一样好
  • 缺点:null

中点画线法 画圆(By 孔令德)

[题目](https://www.yuque.com/g/venus-bfasm/xgf3zg/gk0rm3p22qeu17a1/collaborator/join?token=6RMHOXxfXpp4SpXG&source=doc_collaborator# 《相关题目》)

算法思想:中点算法是隐函数算法。将中点代入隐函数,如果误差项小于零,说明中点位于圆内,上方像素离圆弧近,选取Pu。

总结
  • 思路:
  • 使用一般式方程,通过x2+y2-R2=F(x,y)
  • 我们取得是第一象限的八分之一个圆,它通过对称平移可以形成一个圆
  • 当点在圆外时,F(x,y)>0,否则小于0,并且借此来确定下一个像素点
  • 当实际的值在两个像素点之间的时候,通过判断中点在弧线的上方还是下方来判断直线离哪个像素点近
  • 如果中点在弧线下面说明要取上面那个像素点y,否则取下面像素点(y-1),这样y的取值就变成了是否-1的判断
  • 但是这样的运算效率并不高,因为有3个乘法和四个加法
  • 那就继续优化
  • 通过优化得:
  • d(0)=1.25-R 当d(i)<0时,d(i+1)=d(i)+2X+3; 当d(i)>=0时,d(i+1)=d(i)+2(X-Y)+5;
  • 这样通过判断d的正负就可以判断y是否+1
  • 还可以优化的一点是,可以使用d-0.25来代替d,这样就可以摆脱浮点运算,只有整数运算了,反正只需要判断正负号即可
  • y值的处理:对于y的取值需要取整,但是要避免误差太大,比如1.8取整为1,1.8其实离2更近一些,所以需要减0.5来减小误差(第一象限的8分之一圆是递减的)
  • 算法效率:
  • 缺点:

4 Bresenham算法

Bresenham算法绘制直线(by中国农大)

从效率上来说没有办法改进了,但是能不能从适用范围内进行改进?

不仅画直线还能画圆、椭圆?

Bresenham算法绘制直线 (by 逆风引弓)

== 下面这部分的笔记换了个课程,因为上面这个老师跳步了没讲明白 ==

1.5怎么来的呢?

这个前提是y1已经在东北角处 所以y2 要么在第2格子或者第3格子 四舍五入比较的值就是1.5了 小于1.5就留在第二格 大于就处于第三格

Bresenham算法画圆(by 逆风引弓)

总结

  • 推荐博客
  • 《Bresenham 画圆算法原理-CSDN博客》
  • 《Bresenham圆转换算法详解_bresenham算法画圆-CSDN博客》

5 多边形的扫描转换

5.1 多边形表示

5.2 X-扫描线算法

算法步骤

求交点
存在问题:交点取舍

求交点的算法
方式一 暴力算法

方式二 多边形的扫描转换算法的改进

5.3 边缘填充算法

小结

6 区域填充算法

简单四连通种子填充算法(区域填充递归算法)

7 多边形的扫描转换与区域填充算法小结


相关文章
|
SQL 存储 关系型数据库
MySQL主从复制之原理&一主一从部署流程—2023.04
MySQL主从复制之原理&一主一从部署流程—2023.04
2173 0
|
7月前
|
存储 安全 Java
JUC系列之《深入理解synchronized:Java并发编程的基石 》
本文深入解析Java中synchronized关键字的使用与原理,涵盖其三种用法、底层Monitor机制、锁升级过程及JVM优化,并对比Lock差异,结合volatile应用场景,全面掌握线程安全核心知识。
|
5月前
|
缓存 算法 C++
⚡ 模型推理加速
大模型推理加速关键技术:KV-Cache减少重复计算,连续批处理提升吞吐,投机解码实现2-3倍加速,结合vLLM等工具优化部署。涵盖算法、系统与硬件协同设计,助力高效落地。
|
机器学习/深度学习 人工智能 分布式计算
使用PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建文旅领域知识问答机器人
本次教程介绍了如何使用 PAI ×LLaMA Factory 框架,基于全参方法微调 Qwen2-VL 模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
使用PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建文旅领域知识问答机器人
|
算法 图形学
【头歌 计算机图形学 练习】多边形填充v1.0 (第1关:扫描线填充算法(活动边表AET法) 第2关:边缘填充法 第3关:区域四连通种子填充算法 第4关:区域扫描线种子填充算法)
【头歌 计算机图形学 练习】多边形填充v1.0 (第1关:扫描线填充算法(活动边表AET法) 第2关:边缘填充法 第3关:区域四连通种子填充算法 第4关:区域扫描线种子填充算法)
938 0
|
人工智能 IDE 测试技术
魔搭×通义灵码:0代码基础、0门槛在线编程做应用
本节课主要介绍了如何利用 Notebook IDE 环境和通义灵码工具来具体开发 AI 产品,通过前面的介绍,可以感受到好的开发环境和开发工具往往可以让开发过程事半功倍,也可以更快更好地解决一些实际问题。随着 AI 代码生成工具不断成熟,动动手指,你的 AI 产品马上变成现实~
|
算法 图形学
【计算机图形学】实验三 用Cohen-Sutherland裁剪算法实现直线段裁剪
【计算机图形学】实验三 用Cohen-Sutherland裁剪算法实现直线段裁剪
1320 2
|
存储 机器学习/深度学习 缓存
ModelScope 模型库产品快速使用
ModelScope 的模型库(Model Hub)是共享机器学习模型、demo 演示、数据集和数据指标的地方。可以轻松地创建和管理自己的模型库,利用界面或开发环境来便捷地上传、下载相关模型文件,并从 Model Hub 中获取有用的模型和数据集元数据。
34454 1
|
存储 消息中间件 运维
使用Java实现分布式日志系统
使用Java实现分布式日志系统
|
算法 图形学
【计算机图形学】实验一 DDA算法、Bresenham算法
【计算机图形学】实验一 DDA算法、Bresenham算法
1462 3

热门文章

最新文章