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

news2025/1/16 19:55:00

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

文章目录

    • 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.coloradmin.cn/o/1790832.html

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

相关文章

【ubuntu软件版本管理】利用update-alternatives管理ubuntu软件

​ 我们有的时候希望在安装了新软件之后保留旧版本的软件,比如希望保留旧版本的gcc,以防以前写的C编译出问题,这时候就需要版本管理软件update-alternatives。 ​ 在此之前我们需要先弄清楚,什么是ubuntu的软件?拿C源…

力扣 54.螺旋矩阵

题目描述: 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2: 输入&#…

【宠粉赠书】大模型时代的网络安全:安恒“网安三剑客”实战指南

不知不觉中,小智的粉丝已经突破一万。为了回馈粉丝们的厚爱,今天小智给大家送上一套网络安全界的三宝书——安恒"网安三剑客"。下面我会详细给大家介绍这套图书,文末留有领取方式。 随着人工智能(AI)和大模型…

基于协同过滤算法的东北特产销售系统的设计

基于协同过滤算法的东北特产销售系统的设计 管理员账户功能包括:系统首页,个人中心,管理员管理,基础数据管理,公告管理,新闻信息管理,商品管理 农户账户功能包括:系统首页&#xf…

【数据库】SQL--DQL(初阶)

文章目录 DCL1. 基本介绍2. 语法2.1 基础查询2.2 条件查询2.3 聚合函数2.4 聚合查询2.5 分组查询2.6 排序查询2.7 分页查询2.8 综合案例练习2.9 执行顺序 3. DQL总结 DCL 更多数据库MySQL系统内容就在以下专栏: 专栏链接:数据库MySQL 1. 基本介绍 DQL英…

WPF -> MVVM

1.1安装MVV MLight 打开 Visual Studio 2022。 在顶部菜单栏中选择“工具” -> “NuGet 包管理器” -> “程序包管理器控制台”。 在控制台中输入以下命令,并按回车键运行: Install-Package MvvmLightLibsStd104.等待安装完成后,你就…

汇编:调用Win32 API

在32位汇编程序中使用 Win32 API 是很常见的,特别是在开发 Windows 应用程序时调用的频率很高,Win32 API 提供了访问 Windows 操作系统功能的接口,包括窗口、消息处理、文件操作、网络通信等等。以下是使用 Win32 API 的一般步骤:…

Vue3项目练习详细步骤(第二部分:主页面搭建)

主页面搭建 页面主体结构 路由 子路由 主页面搭建 页面主体结构 在vuews目录下新建Layout.vue文件 主页面内容主体代码 <script setup> import {Management,Promotion,UserFilled,User,Crop,EditPen,SwitchButton,CaretBottom } from element-plus/icons-vue imp…

在线建站流程分析

建站流程是指通过互联网创建一个个人或企业网站的过程。随着互联网的发展&#xff0c;越来越多的人和机构开始意识到网络的重要性&#xff0c;建站成为一种常见的行为。在线建站的流程一般包括以下几个步骤。 首先&#xff0c;选择一个合适的建站平台。目前&#xff0c;有很多在…

动态规划6:63. 不同路径 II

动态规划解题步骤&#xff1a; 1.确定状态表示&#xff1a;dp[i]是什么 2.确定状态转移方程&#xff1a;dp[i]等于什么 3.初始化&#xff1a;确保状态转移方程不越界 4.确定填表顺序&#xff1a;根据状态转移方程即可确定填表顺序 5.确定返回值 题解&#xff1a;63. 不同…

C++ primer例子1实现

问题 代码 Sales_item.h #include<iostream> #include<string> class Sales_item {public:Sales_item(){};Sales_item(std::string insid, int num, double price);friend std::istream& operator>>(std::istream& is, Sales_item& item);frie…

SpringBoot: 读取项目的Git版本号

在开发项目的时候&#xff0c;我们经常会想要拿到线上运行的程序版本&#xff0c;以确定程序是否正确发布。Spring Boot提供了这样的能力支持。这个能力的核心组件是3个: Maven插件git-commit-id-maven-plugin&#xff0c;用于生成.properties文件&#xff0c;里边包含git的各…

登录通用解决方案 —— 第三方登录处理

目录 01: 前言 02: 第三方平台登录解决方案流程大解析 03: QQ 开放平台流程大解析 04: QQ 登录对接流程&#xff1a;获取 QQ 用户信息 05: QQ 登录对接流程&#xff1a;跨页面信息传输 06: QQ 登录对接流程&#xff1a;认证是否已注册&#xff0c;完成 QQ …

文件同步软件免费下载

在数字化时代&#xff0c;数据已成为我们生活和工作中不可或缺的一部分。无论是个人用户还是企业团队&#xff0c;都需要一种高效、便捷的方式来管理和同步数据。文件同步软件应运而生&#xff0c;它能够帮助我们轻松实现数据的实时更新和共享。本文将为大家介绍几款优秀的文件…

下载ubuntu22.04

建议使用&#xff1a;清华源镜像 官网下载比较慢Ubuntu 22.04.4 LTS (Jammy Jellyfish) 打开清华源向下翻 然后找到22.04 下载完成&#xff1a;

计算机网络 —— 数据链路层(无线局域网)

计算机网络 —— 数据链路层&#xff08;无线局域网&#xff09; 什么是无线局域网IEEE 802.11主要标准及其特点&#xff1a; 802.11的MAC帧样式 我们来看看无线局域网&#xff1a; 什么是无线局域网 无线局域网&#xff08;Wireless Local Area Network&#xff0c;简称WLAN…

学生成绩管理系统(大一大作业)

功能 实现添加&#xff0c;排序&#xff0c;修改&#xff0c;保存等功能 库函数 #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<string.h> 头文件 #define functioncreate(major) void major##compare(mana mn){\int i,j,s…

计算机网络 ——数据链路层(广域网)

计算机网络 —— 广域网 什么是广域网PPP协议PPP协议的三个部分PPP协议的帧格式 HDLC协议HDLC的站HDLC的帧样式 PPP和HDLC的异同 我们今天来看广域网。 什么是广域网 广域网&#xff08;Wide Area Network&#xff0c;简称WAN&#xff09;是一种地理覆盖范围广泛的计算机网络…

mkfs.ubifs -c 计算工具

mkfs.ubifs -c 输入的logical erase block count,是指除掉ubi文件系统自身管理和坏块处理后的逻辑可擦除最大块数。 参考信息如下&#xff1a; logical erase block count 计算工具&#xff0c;实现代码如下&#xff1a; #!/usr/bin/python # -*- coding: UTF-8 -*-import os…

【AI大模型】基于Langchain和Openai借口实现英文翻译中文应用

&#x1f680; 作者 &#xff1a;“大数据小禅” &#x1f680; 文章简介 &#xff1a;本专栏后续将持续更新大模型相关文章&#xff0c;从开发到微调到应用&#xff0c;需要下载好的模型包可私。 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 目…