2023年计算机图形学课程知识总结

去年就该写的,但是去年这个时候太忙了。
就写来自己看看。留个记录留个念

文章目录

    • 1. 图形,图像的定义
    • 2. 点阵、矢量
    • 3. 走样,反走样
    • 4. 字符裁剪精度
      • (1) 串精度
      • (2) 字符精度
      • (3)笔画或者像素精度
    • 5. 曲率和挠率
    • 6. 几何连续(一阶,二阶)与参数连续的区别
    • 7. 三色学说
    • 8. Z-buffer算法
    • 9. 输入输出设备
    • 10.多边形裁剪
    • 11. 画线算法
    • 12. 显式/隐式方程与参数方程
    • 13. 多边形填充
    • 14. 前向面,法向面和视图关系
    • 15. 反走样
    • 16. 中点画线
    • 17. 直线裁剪
    • 18. Bezier曲线,样条曲线
    • 19. Lambert参数的定义,漫反射模型
    • 20. phong光照模型
    • 21.openGL
    • 22. 中点画圆:
    • 23. 直线的画法:

1. 图形,图像的定义

图像是指计算机内以位图形式存在的灰度信息。
图形含有几何属性,是由场景的几何模型和景物的物理属性共同组成。

2. 点阵、矢量

位图:点阵图(bitmap)
矢量图:用数学的方法描述曲线以及曲线围成的色块制作的图形(vector)

3. 走样,反走样

走样:对图形进行光栅化时,由于显示器的空间分辨率有限,对于非水平、垂直、45°的直线,因像素逼近误差,使得所画图形产生畸变(台阶,锯齿)的现象。
反走样:用于减少或消除走样的技术

4. 字符裁剪精度

主要就是要了解以下三种方式裁剪后结果是什么样子

(1) 串精度

在这里插入图片描述

(2) 字符精度

在这里插入图片描述

(3)笔画或者像素精度

在这里插入图片描述

5. 曲率和挠率

曲率:曲线的单位切矢对弧长的转动率,曲率倒数为曲率半径
挠率:挠率的绝对值等于副法线方向(或密切平面)对于弧长的转动率,挠率大于0、等于0、小于0分别
表示曲线为右旋空间曲线,平面曲线和左旋空间曲线

6. 几何连续(一阶,二阶)与参数连续的区别

在这里插入图片描述
注意:
在这里插入图片描述

7. 三色学说

红(R),绿(G),蓝(B)三种单色光可以作为基本的颜色——原色,这三种光按不同比例混合就能准确地复现出
任何波长的光,而等量混合则可以产生白光。

8. Z-buffer算法

这个算法中,需要帧缓冲器来存储每个像素的颜色值,还需要一个深度缓存来存放每个像素的深度值。
图形消隐的过程就是给帧缓冲器和Z缓冲器中相应单元填值的过程。
在这里插入图片描述

9. 输入输出设备

输入设备:鼠标,键盘,光笔,数字化仪,图像扫描仪
输出设备:各种显示屏

10.多边形裁剪

你要注意起点终点可见侧不可见侧
主要就是判断哪些点要保留
在这里插入图片描述

11. 画线算法

DDA画直线算法
中点画直线算法
Bresenham算法

12. 显式/隐式方程与参数方程

显式方程:y=f(x)
隐式方程:f(x) = 0
显式方程不能表示封闭或者多值曲线,例如不能表示圆
隐式表示的优点:易于判断函数是否大于0、小于0和等于0,也就是易于判断点是落在曲线上还是曲线的哪一侧。
参数方程: t为参数,p(t) = [x(t),y(t),z(t)]
参数方程比显式、隐式方程有更多的优越性,主要表现在:

  1. 可以满足几何不变性要求
  2. 有更大的自由度来控制曲线、曲面的形状
  3. 对非参数方程表示的曲线曲面进行变换,必须对曲线曲面上的每个型值点进行几何变换;而对参数表示的曲线、曲面,可对其参数方程直接进行几何变换。
  4. 便于处理斜率无穷大的情况,不会因此中断计算
  5. 参数方程中,代数、几何相关和无关的变量是完全分离的,而且对变量个数不限,从而便于用户将低维空间中的曲线曲面扩展到高维空间中去。这种变量分离的特点使得可以用数学公式处理几何分量。
  6. 规格化的参数变量t属于[0,1],使得其相应的几何分量是有界的,而不必用另外的参数去定义边界。
  7. 易于用矢量和矩阵表示几何分量,简化了计算

13. 多边形填充

区域——指已经表示成点阵形式的填充图形,是像素的集合
区域填充是指将区域内的一点(种子点)的颜色扩展到整个区域的过程
主要是注意4连通,8连通是怎么连通的

14. 前向面,法向面和视图关系

在这里插入图片描述

15. 反走样

常见有3种技术:

  1. 提高分辨率
  2. 区域采样
  3. 加权区域采样

16. 中点画线

基本上就是给定一个点,知道了d分量,求下一个点在什么位置。
在这里插入图片描述

17. 直线裁剪

Cohen-Sutherland裁剪算法:
在这里插入图片描述
说白了就是判断线段上的某个顶点在哪个编码区域,回答区域编号就是了。

18. Bezier曲线,样条曲线

19. Lambert参数的定义,漫反射模型

理想漫反射:
当光源来自一个方向时,漫反射光均匀地向各方向传播,与视点无关,它是由表面的粗糙不平引起的,因而漫反射光的空间分布是均匀的。
在这里插入图片描述

20. phong光照模型

在这里插入图片描述

21.openGL

OpenGL模型变换有三个常用的基本函数,分别是平移,旋转和缩放
glTranslate(x,y,z):平移 x,y,z指定沿世界坐标系x,y,z轴的平移量
glRotate(角度,x,y,z)
:旋转 角度以度为单位,x,y,z指定世界坐标系中的旋转轴向量(x,y,z)。
glScale(x,y,z)*:缩放 x,y,z指定沿x,y和z轴的比例因子。
开始绘图之前,屏幕上可能有一些图形,首先要清除这些图形。这些图形存储在OpenGL的显示缓冲区中。清除操作与两个函数有关,第一个函数是
void glClearColor(red,green,blue,alpha);
参数red,green,blue,alpha为清除颜色缓冲区的值(指背景颜色)。然而,这个函数只是设置了背景颜色,并未实际进行清除操作。实际的清除操作由第二个函数完成,即:
void glClear(mask);
mask表示执行操作的缓冲区对象。OpenGL中有多种缓冲区,如下:
在这里插入图片描述
绘制完成之后可以使用两个函数之一来结束绘图,通常在每一帧的绘制末尾调用。
这两个函数如下,功能稍有不同:
void glFlush():让前面的OpenGL绘制命令开始执行,这样可以保证绘制在有限的时间完成函数
void glFinish():强制前面的OpenGL绘制命令开始执行,并等到绘制完成时再返回执行下面的操作。
有时,为了保证操作的同步性需要调用glFinish函数,然而,过多的调用glFinish()则会降低绘制的效率,
所以,如果glFlush()的功能足够,则尽量使用glFlush()

OpenGL中通过使用glVertex函数来定义顶点,glBegin函数标志几何元素绘制开始,glEnd函数表示几何
元素绘制结束。通过设置glBegin()的参数来指定绘制何种几何元素。注意,一个glBegin函数必须搭配一
个glEnd函数,glVertex函数必须出现在glBegin()和glEnd()之间。
函数 void glBegin(Glenum mode) 中mode的值:
在这里插入图片描述

22. 中点画圆:

在这里插入图片描述

23. 直线的画法:

DDA画线:
在这里插入图片描述

中点画线:
在这里插入图片描述

Bresenham画线:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/681976.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

记录:linux桌面管理基础-X11协议(X window system)

1、认识X11 X11是X协议,版本号为11。X协议是专门被设计为linux桌面管理服务的,而linux桌面环境不像windows那样作为系统内核的一部分,作为一个普通程序运行在用户态上。该协议的设计初衷是为了linux的图形界面满足跨平台、跨网络、与具体硬件…

C/C++图形库Easyx的使用教学

绘制简单的图形窗口 学会创建图形化窗口 包含头文件 graphics.h包含已被淘汰的函数easyx.h包含最新的函数 两个函数就可以创建窗口 Initgraph&#xff08;&#xff09;函数的定义 图形窗口的创建 #include<graphics.h>int main() {initgraph(800, 600);while (1);…

【数据库】MySQL概述(初阶)

文章目录 一、mysql概述1、数据库基本概念&#xff1a;2. 数据模型2.1 关系型数据库2.2 理解数据模型 更多数据库MySQL系统内容就在以下专栏&#xff1a; 专栏链接&#xff1a;数据库MySQL 一、mysql概述 1、数据库基本概念&#xff1a; 数据库&#xff1a; 数据存储的仓库。数…

雨课堂课件快速自动刷完

文章目录 背景f12检查 查看源代码脚本脚本使用方法总结 背景 有时候老师让我们在雨课堂里刷完这个课件。这个课件呢有时候它有三百多页&#xff0c;每一页需要停留3秒左右才可以算看过课件&#xff0c;你如果一页一页的去点的话非常的折磨人。因为课件太多页了&#xff0c;我就…

什么是Spark RDD?(RDD的介绍与创建)

什么是Spark RDD&#xff1f;(RDD的介绍与创建) 一、RDD介绍 1、特点2、RDD的存储和指向3、RDD与DAG4、RDD的特性5、RDD分区6、RDD操作类型 二、RDD创建 1、引入必要的 Spark 库2、配置 Spark3、RDD创建4、示例代码 一、RDD介绍 RDD: 弹性分布式数据集&#xff08;Resilient…

Ant Design Vue Table组件全单元格编辑实现方案

在ant上的table常见用法是一行的元素可编辑&#xff0c;如下&#xff1a; 但是现在有一个需求是全部单元格均可编辑&#xff0c;如何实现呢&#xff1f; 表格组件 <a-tablev-if"query.personnel_type 0"size"middle"row-key"id":scroll&qu…

【深度学习】安全帽检测,目标检测,Faster RCNN训练

文章目录 资料环境尝试训练安全帽数据训练测试预测全部数据、代码、训练完的权重等资料见&#xff1a; 资料 依据这个进行训练&#xff1a; https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_object_detection/faster_rcnn ├── bac…

人工智能机器学习系统技术要求

一 术语和定义 1.1机器学习系统 machinelearningsystem 能运行或用于开发机器学习模型、算法和相关应用的软件系统。 1.2机器学习框架 machinelearningframework 利用预先构建和优化好的组件集合定义模型,实现对机器学习算法封装、数据调用处理和计算资源使用的软件库。 1…

实时监控与报警:人员跌倒检测算法的实践

在全球范围内&#xff0c;跌倒事件对老年人和儿童的健康与安全构成了重大威胁。据统计&#xff0c;跌倒是老年人意外伤害和死亡的主要原因之一。开发人员跌倒检测算法的目的是通过技术手段及时发现和响应跌倒事件&#xff0c;减少因延迟救助而造成的严重后果。这不仅对老年人群…

特征交叉系列:FM和深度神经网络的结合,DeepFM原理简述和实践

从FM&#xff0c;FFM到DeepFM 在上两节中介绍了FM和FFM 这两种算法是推荐算法中经典的特征交叉结构&#xff0c;FM将特征交叉分解到底层属性&#xff0c;通过底层属性的点乘来刻画特征交叉的计算&#xff0c;而FFM引入特征域的概念&#xff0c;对不同的特征对所引用的底层属性…

Redis 单线程问题 BigKey问题

前言 简单的redis基础类型以及常用操作我们都也已经介绍过了 现在今天我们来谈谈redis对于单线程是需要怎么理解的 以及redis假设遇见大key我们需要怎么去查询和删除呢??? redis单线程 假设有个人现在问你一个问题:redis是单线程的还是多线程的 这个问题本身就不严谨 就像问…

植物大战僵尸杂交版2.0.88最新版+防闪退工具V2+修改工具+高清工具

植物大战僵尸杂交版&#xff0c;不仅继承原作的经典玩法&#xff0c;而且引入了全新的植物融合玩法&#xff0c;将各式各样的植物进行巧妙的杂交&#xff0c;孕育出前所未有、功能各异的全新植物。 创新的杂交合成系统 游戏引入了创新的杂交合成系统&#xff0c;让玩家可以将不…

每天CTF小练--ctfshow新手村

easy_base 密文&#xff1a;0XezFWZfNXafRjNlNXYit3dvh2cmR3Y 等号在前面&#xff0c;直接倒序后解码 ctfshow{base64_is_easy} 代码解&#xff1a; s 0XezFWZfNXafRjNlNXYit3dvh2cmR3Y print(s[::-1]) #翻转字符串 print(s[::-1]) #翻转字符串 print(s[::-1]) #翻转…

LLaSM:Large language and speech model

1.Introduction 级联方法使用ASR将语音输入转化为文本输入,语音到文本会导致信息损失,本文提出LLaSM,一个具有跨模态对话能力的大型语音与语言模型,能够理解和遵循语音与语言指令,借鉴LLaVA,利用预训练的语音模态编码器和大语言模型,使用Whisper作为语音编码器,将语音…

iOS18 新变化提前了解,除了AI还有这些变化

iOS 18即将在不久的将来与广大iPhone用户见面&#xff0c;这次更新被普遍认为是苹果历史上最重要的软件更新之一。据多方报道和泄露的消息&#xff0c;iOS 18将带来一系列全新的功能和改进&#xff0c;包括在人工智能领域的重大突破、全新的设计元素以及增强的性能和安全性。现…

Linux之文件操作

目录 第1关&#xff1a;文件的创建 任务描述 相关知识 文件的创建 编程要求 答案&#xff1a; 第2关&#xff1a;文件打开与关闭 任务描述 相关知识 文件的打开 文件的关闭 编程要求 答案&#xff1a; 第3关&#xff1a;文件读写操作 任务描述 相关知识 文件的写操作 文件的读…

Meta Llama 3 残差结构

Meta Llama 3 残差结构 flyfish 在Transformer架构中&#xff0c;残差结构&#xff08;Residual Connections&#xff09;是一个关键组件&#xff0c;它在模型的性能和训练稳定性上起到了重要作用。残差结构最早由He et al.在ResNet中提出&#xff0c;并被广泛应用于各种深度…

项目-双人五子棋对战:匹配模块的实现(3)

完整代码见: 邹锦辉个人所有代码: 测试仓库 - Gitee.com 模块详细讲解 功能需求 匹配就类似于大家平常玩的王者荣耀这样的匹配功能, 当玩家点击匹配之后, 就会进入到一个匹配队列, 当匹配到足够数量的玩家后, 就会进入确认页. 在这里, 我们主要实现的是1 - 1匹配功能, 首先先…

【Git】分支管理 -- 详解

一、理解分支 分支就是科幻电影里面的平行宇宙&#xff0c;当你正在电脑前努力学习 C 的时候&#xff0c;另一个你正在另一个平行宇宙里努力学习 JAVA。 如果两个平行宇宙互不干扰&#xff0c;那对现在的你也没啥影响。不过&#xff0c;在某个时间点&#xff0c;两个平行宇宙…

ApsaraMQ Copilot for RocketMQ:消息数据集成链路的健康管家

作者&#xff1a;文婷 引言 如何正确使用消息队列保证业务集成链路的稳定性&#xff0c;是消息队列用户首要关心的问题。ApsaraMQ Copilot for RocketMQ 从集成业务稳定性、成本、性能等方面帮助用户更高效地使用产品。 背景 消息队列产品通过异步消息的传递&#xff0c;来…