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画线:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot打war包并配置外部Tomcat运行

简介 由于其他原因,我们需要使用SpringBoot打成war包放在外部的Tomcat中运行,本文就以一个案例来说明从SpringBoot打war包到Tomcat配置并运行的全流程经过 环境 SpringBoot 2.6.15 Tomcat 8.5.100 JDK 1.8.0_281 Windows 正文 一、SpringBoot配置打war包 第一步&a…

J-Lin烧录

1、J-linK介绍 J-Link是由德国SEGGER公司推出的,主要用于支持仿真ARM内核芯片的JTAG仿真器。它支持JTAG和SWD两种模式,可以配合多种集成开发环境(如IAR EWAR, ADS, KEIL, WINARM, RealView等)使用,支持ARM7/ARM9/ARM…

odoo16 档案管理

档案管理,odoo15升级至odoo16完善 电子档案管理是指将传统纸质档案数字化,以便更加方便、快捷、安全地进行档案管理。电子档案管理系统可以对档案进行数字化、存储、检索、共享、传递和销毁等操作,从而提高了档案管理的效率和准确性&#xf…

使用cesiumLab使shp转为3dtlies

过程不做赘述,网上大把,说下注意事项。 1. 存储3DTiles 选项 若是打开则输出的文件为glb格式文件,因为glb文件好储存易传输跨平台。cesium可以使用但无法处理,例如改变颜色,改着色器等。若是不打开则输出的文件为bm3d格式文件,此…

Bond网卡

一、Bond网卡 1.1 Bond网卡概述 Bond网卡是指使用 Linux 系统中的 Bonding 技术创建的虚拟网络接口。 Bonding 技术允许将多个物理网卡(也称为接口或端口)绑定在一起,形成一个虚拟的网络接口,以增加网络带宽、提高网络容错性和…

表达式求值中的“整型提升”概念

一.基本原理和概念 如:代码 char a,b,c ; a b c ; 该代码在计算的时候就会先将 b 和 c 提升为 int 类型进行加法后,再将数据进行截断存放在内存存放变量 a 的空间中。 (1)提升和截…

眼底照 + OCT图 + 精神状态 ,预测阿尔兹海默症

眼底照片和OCT图像,预测阿尔兹海默症 数据多模态网络模型集成可视化分析 论文:https://www.ophthalmologyretina.org/action/showPdf?piiS2468-6530%2824%2900045-9 目前,认知障碍的诊断依赖于血清和蛋白质生物标志物的检测、脑脊液检查和正…

【教程】WordPress主题子比主题 添加私密评论功能

教程如下 打开子比主题的 functions.php 文件,在最后一个 ?> 的前面添加以下代码: //私密评论 function liao_private_message_hook( $comment_content , $comment){$comment_ID = $comment->comment_ID; $parent_ID = $comment->comment_parent; $parent_emai…

[SaaS] AI+数据,tiktok选品,找达人,看广告数据

TK观察专访丨前阿里“鲁班”创始人用AIGC赋能TikTok获千万融资用AI数据做TikTokhttps://mp.weixin.qq.com/s/xp5UM3ROo48DK4jS9UBMuQ主要还是爬虫做数据的。 商家做内容:1.找达人拍内容,2.商家自己做原生自制内容,3.广告内容。 短视频&…

南京观海微电子----焊机用DC-DC 24V 升压电路分析

焊机用DC-DC 24V 升压电路分析 辅电升压电路关键元件有:UC3843、电感、MOS功率管、整流二极管等组成。其核心是UC3843。UC3843是脉宽调制IC,工作频率可达500kHz,组成电路引脚少、外围元件简单,启动电流仅需1mA,开启电压…

BC C language

题目汇总 No.1 打印有规律的字符(牛牛的字符菱形) 代码展示 #include<stdio.h> int main() {char ch=0;scanf("%c"

Meta Llama 3 残差结构

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

ArUco与AprilTag 标签

一、简介 在许多计算机视觉应用程序中&#xff0c;姿势估计非常重要&#xff1a;机器人导航&#xff0c;增强现实等等。 该过程基于发现真实环境中的点与其2d图像投影之间的对应关系。 这通常是一个困难的步骤&#xff0c;因此通常使用合成或基准标记来简化操作。 最受流行的…

Day13 配置AutoMapper关系映射

在上一节 中,无论ToDoController 控制器,或 IToDoService 服务的接口中,方法的实参必须是传实体类。但在实际开发过程中,这样是不允许的。标准且规范的做法是,定义一个数据传输层,即DTO层。 DTO(Data Transfer Objects)数据传输对象,它是一种设计模式,主要用于在不同…

【机器学习-09】 | Scikit-Learn工具包进阶指南:Scikit-Learn工具包之高斯混合sklearn.mixture模块研究

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

【全网唯一】触摸精灵iOS版纯离线本地文字识别插件

目的 触摸精灵iOS是一款可以模拟鼠标和键盘操作的自动化工具。它可以帮助用户自动完成一些重复的、繁琐的任务&#xff0c;节省大量人工操作的时间。但触摸精灵的图色功能比较单一&#xff0c;无法识别屏幕上的图像&#xff0c;根据图像的变化自动执行相应的操作。本篇文章主要…

【Python绘画】画正方形简笔画

本文收录于 《一起学Python趣味编程》专栏&#xff0c;从零基础开始&#xff0c;分享一些Python编程知识&#xff0c;欢迎关注&#xff0c;谢谢&#xff01; 文章目录 一、前言二、代码示例三、知识点梳理四、总结 一、前言 本文介绍如何使用Python的海龟画图工具turtle&#…

Stable Diffusion 临时文件夹设定

即使将Easy Diffusion或Stable Diffusion安装在C盘之外的某个地方&#xff0c;如果持续使用Stable Diffusion一段时间后&#xff0c;仍然会发现C盘空间在快速变小。这是因为有很多自动下载的文件还是保存在C盘。为了解决这个问题&#xff0c;我们需要做以下临时文件夹设定。 H…

嵌入式 Linux LED 驱动开发实验学习

I.MX6U-ALPHA 开发板上的 LED 连接到 I.MX6ULL 的 GPIO1_IO03 这个引脚上&#xff0c;进行这个驱动开发实验之前&#xff0c;需要了解下地址映射。 地址映射 MMU 全称叫做 MemoryManage Unit&#xff0c;也就是内存管理单元。在老版本的 Linux 中要求处理器必须有 MMU&#x…

dvwa靶场的下载、配置

目录 下载 配置 连接数据库 搭建网站&#xff08;可选&#xff09; 配置靶场 下载 百度网盘链接&#xff1a;https://pan.baidu.com/s/1oK2UzKFxIIPQkhz6hD8WFQ?pwdpbb2 提取码&#xff1a;pbb2 迅雷链接&#xff1a;https://pan.xunlei.com/s/VNzHo9gXgbsk5E8tcx6Yek…