图形学 | 期末复习(上)| games101笔记 | 补档

news2024/9/23 23:22:06
  • 博客基于GAMES101-现代计算机图形学入门-闫令琪,但不是其完整笔记,基于复习要求有一定的删减。
  • 考试以图形学入门基本概念核心研究内容为主,少量公式。即以论述概念为主,涉及少量算法。
  • p1:29:12是对应的games101视频节点(第一个视频的29分12秒附近)。

文章目录

  • 📚图形学的技术挑战
  • 📚图形学与计算机视觉
  • 📚线性代数复习
    • 🐇点乘在图形学的应用
    • 🐇叉乘在图形学的应用
  • 📚变换
    • 🐇矩阵变换(线性变换)
    • 🐇齐次坐标⭐️
    • 🐇视图变换
    • 🐇投影变换
      • 🥕正交投影
      • 🥕透视投影
  • 📚光栅化⭐️
    • 🐇光栅化的概念
    • 🐇采样——Inside函数⭐️
    • 🐇时域和频域
    • 🐇傅里叶频域图
    • 🐇卷积
    • 🐇超采样抗锯齿(MSAA)
    • 🐇超分辨率
    • 🐇画家算法
    • 🐇深度缓冲(Z-Buffer)
  • 📚着色
    • 🐇Blinn-Phong反射模型
    • 🐇实时渲染管线⭐️
    • 🐇纹理映射
  • 📚几何
    • 🐇几何表示方法的分类
    • 🐇隐式几何
      • 🥕CSG
      • 🥕距离函数
    • 🐇显式几何
      • 🥕多边形网络⭐️
      • 🥕贝塞尔曲线⭐️
      • 🥕网格操作⭐️

📚图形学的技术挑战

考察有哪些技术,诸如此类,考察概念,p1:29:12

光栅化(resterization):把三维空间的几何形体显示在屏幕上;将投影基元分解成碎片(像素);是游戏等实时计算机图形学的主要应用。实时:能达到每秒钟三十帧(30fps)被看做是实时的,反之是离线的。

在这里插入图片描述

曲线和网格(Curves and Meshes):如何在计算机图形学中表示几何,各种细分方法。

在这里插入图片描述

光线追踪(Ray Tracing):通过每个像素点从相机发送光线——计算交点和阴影+继续反射光线,直到击中光源;离线应用。

效果好但是速度慢,目前游戏使用的是实时光线追踪。

在这里插入图片描述

仿真和模拟(Animation/Simulation):关键帧动画、质量弹簧系统

在这里插入图片描述

OpenGL、DirectX是图形学API,并不是图形学


📚图形学与计算机视觉

  • 图形学不是计算机视觉。
  • 计算机视觉是去猜测、预测、分析处理。
  • 计算机视觉是理解这个世界,计算机图形学是创造这个世界。

在这里插入图片描述

上图解释说明p1:37:08👀


📚线性代数复习

🐇点乘在图形学的应用

p2:16:48,可能会考察公式

⭕️向量点乘最后得到一个数。点乘主要应用于求夹角,特别是单位向量;

在这里插入图片描述

⭕️寻找一个矢量在另一个矢量上的投影;基于投影,进一步可以完成向量分解。

在这里插入图片描述

在这里插入图片描述

⭕️观察两个向量的接近(结果接近1,离得很近;接近-1,离得很远),判断前后,前(同向)、后(反向)、垂直(Dot=0)。

在这里插入图片描述

在这里插入图片描述

🐇叉乘在图形学的应用

p2:30:21

⭕️向量叉乘得到的是向量。

⭕️向量积与两个初始向量正交,方向由右手定则确定,用于构造坐标系。

在这里插入图片描述

⭕️判定左右(内外):若A×B为正,则点B在点A的左侧(结合右手系,从A转到B理解),反之在右侧。

⭕️判断一个点是否在三角形内部:若AB×AP,BC×BP,CA×CP同向(都在左边或都在右边),则说明点P在△ABC内部。

在这里插入图片描述

⭕️定义坐标系:单位向量+互相垂直(点乘为0且叉乘结果为另一轴),定义坐标系后就可以把任意向量投影到坐标系。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

📚变换

⭕️怎么用一个矩阵去表达变换,在矩阵无法表达的基础上(平移变换),怎么就引入了齐次坐标对所有的变换进行统一的表达。

🐇矩阵变换(线性变换)

p3:7:03

在这里插入图片描述

⭕️缩放

这里用于缩放的矩阵就叫缩放矩阵,以下同理

在这里插入图片描述

在这里插入图片描述

⭕️X轴翻转

在这里插入图片描述

⭕️切变

  • 在y=0处水平位移为0
  • 在y=1处水平位移为a
  • 垂直位移总是0

在这里插入图片描述

⭕️旋转

约定:默认是绕着原点逆时针转

在这里插入图片描述

通过(1,0)(0,1)比对前后差异进行推导。
在这里插入图片描述

🐇齐次坐标⭐️

定义是什么?哪些地方表示旋转,哪些地方表示平移?p3:32:23

⭕️平移

在这里插入图片描述

在这里插入图片描述


❓平移不是线性变换,为了解决平移产生必须要用加法的问题,加入齐次坐标。

齐次坐标通过将点的坐标表示为多维向量,并在末尾添加一个额外的分量,这个额外的分量通常被称为齐次坐标。引入齐次坐标的目的就是使得所有的变换都可以写成一个矩阵乘以一个向量的形式

❓为什么要将点和向量区分开

在这里插入图片描述

在这里插入图片描述

因为向量具有平移不变性


⭕️齐次坐标转化仿射变换

  • 仿射变换=线性变换+平移
  • 同时需要平移和线性变换的时候,需要先线性变换再平移(矩阵不满足交换律)

在这里插入图片描述

在这里插入图片描述

先平移后旋转⚠️

在这里插入图片描述

先旋转后平移✅

在这里插入图片描述

⭕️齐次坐标表示缩放、旋转和平移

在这里插入图片描述

🐇视图变换

考察基本过程(每一步都干什么),p4:22:10

⭕️什么是视图变换:简言之,就是摆好摄像机。

⭕️思考如何拍一张照片?

  • 找一个好的地方并安排好拍照的人(模型变换
  • 找一个好的角度并放好相机(视图变换
  • 茄子!(投影变换

⭕️定义相机

  • 相机在哪?
  • 相机朝哪个方向?
  • 相机的向上方向(控制歪斜)?

在这里插入图片描述

  • 如果相机和所有的物体一起移动,“照片”将是相同的,所以干脆就让相机都移动到原点上,默认的向上方向为+Y,永远朝着-Z方向看。(物体和相机一块动,这么移动好处多多,方便又美妙)

在这里插入图片描述

⭕️把任意点相机移到默认点

  1. 首先把中心移到原点——先平移(这里相当于上述过程逆过程,所以是先平移)
  2. 把观察方向旋转到-Z方向
  3. 把向上方向旋转到Y方向
  4. 自然而然得出X方向

在这里插入图片描述

计算过程

在这里插入图片描述

🐇投影变换

表述两种方式的大概过程,不要求记住公式,p4:38:56

  • 透视投影(Perspective projection):近大远小,更类似于现实中的形态。
  • 正交投影(Orthographic projection):更像工程制图(可以理解为把相机放到无限远),没有近大远小的现象。

在这里插入图片描述

🥕正交投影

⭕️一种简单的理解方式

  • 把z轴去掉
  • 相机位于原点,看向-Z轴,向上为Y轴
  • 将生成矩阵平移并缩放为 [ − 1 , 1 ] 2 [-1,1]^2 [1,1]2

在这里插入图片描述

⭕️标准方式

p4:48:55

将任意的立方体变成标准立方体,先做平移,再做缩放

在这里插入图片描述

🥕透视投影

p4:53:17

在这里插入图片描述

⭕️如何做透视投影

  • 首先将截椎体“压扁”成长方体。 M p e r s p − > o r t h o M_{persp->ortho} Mpersp>ortho
  • 然后作正交投影。 M o r t h o M_{ortho} Mortho

规定:

  • 近平面保持不动;
  • 远平面的Z轴不动,只有 x , y 的缩放;
  • 位于 x = 0 , y = 0 的点保持不动。

在这里插入图片描述

⭕️“压扁”操作:利用相似三角形求出y轴的位置,同理可以得到 x ′ = ( n / z ) x x'=(n/z)x x=(n/z)x

在这里插入图片描述

⭕️Z轴如何处理

🔔完成X、Y的处理后,同时乘Z得到以下式子:

在这里插入图片描述

🔔根据已知的内容,可以先得到如下式子:

在这里插入图片描述

🔔由近平面的z就是n:

在这里插入图片描述

🔔由远平面的x=0,y=0的点,也即(0,0,f)可得:

在这里插入图片描述

🔔联立可得:Z轴一行的矩阵为(0,0,n+f,-nf)

在这里插入图片描述

在这里插入图片描述

小结:

在这里插入图片描述

📚光栅化⭐️

🐇光栅化的概念

p5:6:33

⭕️如何定义视椎体宽高比和垂直可视角度?

  • fov:垂直可视高度
  • t:在y轴的高度
  • n:近平面上的z轴上的点
  • r:中心点到右边的距离

在这里插入图片描述

在这里插入图片描述

⭕️屏幕

  • 对于图形学来说,屏幕抽象为二维数组
  • 数组中的每个元素是一个像素
  • 屏幕是一个典型的光栅成像设备

光栅化:在屏幕上绘画

  • 光栅化指的是将矢量图形或几何图形转换为由像素组成的栅格图像的过程.
  • 在光栅化图形学中,矢量图形是通过数学表示的集合对象(如三角面片),而栅格图像是由像素(图像单元)组成的二维数组。
  • 像素
    • 在屏幕上最小单位的小方块
    • 由红绿蓝三原色混合而成

⭕️屏幕空间:

  • 像素都是以(x,y)的形式表示,其中x,y都是整数
  • 像素的范围从(0,0)到(宽度-1,长度-1)
  • 像素的中心在(x+0.5,y+0.5)
  • 屏幕覆盖范围为(0,0)到(宽,高)

在这里插入图片描述

🐇采样——Inside函数⭐️

⭕️在某个点对函数求值就是采样,我们通过采样将函数离散化。

⭕️Inside函数——判断像素中心是否在三角形内

描述两种点定位问题的大概思路,p5:46:02

在这里插入图片描述

🔔遍历所有点,判断所有点是否在像素内

for(int x = 0; x < xmax ; ++x)
{
    for(int y = 0; y < ymax; ++y)
    {
        image[x][y] = inside(tri, x + 0.5, y + 0.5);
    }
}

🔔实验回顾

🍉法①:通过叉乘判断

  • pab=Cross(PA,PB)pbc=Cross(PB,PC)pca=Cross(PC,PA)
  • 如果pab,pbc,pca指向同一个方向,那就可以判断点在三角形内部
  • 即 Dot(pab,pbc)>0 , Dot(pab,pca)>0 , Dot(pbc,pca)>0同时成立

在这里插入图片描述

🍉法②:面积法

  • 分别求得△PAB,△PAC,△PBC和△ABC的面积
  • △ABC= △PAB + △PAC + △PBC就可以判断点在三角形内部

在这里插入图片描述

🐇时域和频域

  • 时域:描述数学函数或物理信号对时间的关系的一种坐标系
  • 频域:描述信号在频率方面特性时用到的一种坐标系

🐇傅里叶频域图

考察低通滤波和高通滤波的概念,p6:29:26

  • 滤波:删除特定的频率被称之为滤波。

在这里插入图片描述

  • 高通滤波:只显示高频信息,只显示边界锐化,将低频信息盖住。

在这里插入图片描述

  • 低通滤波:只显示低频滤波,画面变模糊,将高频信息盖住。

在这里插入图片描述

🐇卷积

基本概念,可能会让大家手动计算卷积过程(二维),p6:39:50

滤波(Filtering)= 卷积(Convolution)= 平均(Averaging)

在这里插入图片描述

简化的定义:结果为相邻数的平均值

在这里插入图片描述


时域的卷积等于频域的乘积

![在这里插入图片描述](https://img-blog.csdnimg.cn/54b0522442f946a39c7f1b5401498232.png#pic_在这里插入图片描述
center)

🐇超采样抗锯齿(MSAA)

  • 锯齿——Ps:锯齿/摩尔纹/车轮效应——信号时间变化太快以至于采样跟不上变化的速度

在这里插入图片描述

  • 反走样(抗锯齿):在图像渲染过程中,当图形边缘处存在锯齿状走样时,使用抗锯齿技术可以使图像边缘更加平滑,提高图像的视觉质量。
    • 将每个像素进行模糊卷积f(x,y)
    • 然后再对每个像素的中心取样
    • 在光栅化一个三角形时,像素颜色的平均值f(x,y) = 三角形的覆盖像素的面积

在这里插入图片描述

p6:1:04:23——MSAA(Antialiasing By Supersampling)

  • 这是一种对反走样的近似
  • 每个像素的内部多增加采样点再进行模糊卷积

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 与传统的单一采样抗锯齿技术相比,MSAA可以提供更好的抗锯齿效果,但增加了很多的计算量。

🐇超分辨率

基本概念,p6:1:16:50

  • 从低分辨率处理成高分辨率
  • 与反走样类似,也是解决了样本不足的问题
  • 目前可使用DLSS(深度学习的方法)进行超分辨率处理(缺失的部分猜出来

🐇画家算法

基本概念,p7:4:49

  • 灵感来源于画优化
  • 先画(渲染)距离远的,再画(渲染)距离近的。

在这里插入图片描述

  • 问题:难以确定谁在前谁在后?

在这里插入图片描述

🐇深度缓冲(Z-Buffer)

基本概念,p7:10:35

  • 深度图:储存每个像素对应的最浅的深度

  • 结果图:储存最终的结果

  • Z越小(越黑)越近,越大越远

在这里插入图片描述

算法流程:

在这里插入图片描述

深度缓存迭代示例:

在这里插入图片描述

📚着色

⭕️着色:对不同的物体应用不同的材质。

🐇Blinn-Phong反射模型

高光、漫反射和环境光照分别是什么?p7:37:57

⭕️高光(Specular highlights)它是由于光线照射到光滑表面上并以相同角度反射而产生的明亮点或区域。高光通常呈现为物体表面的亮点或反射光斑,可以提供物体的光泽感和反射特性。

⭕️漫反射(Diffuse reflection):**当光线照射到粗糙表面上时,均匀地反射到各个方向的光线。**漫反射不会像高光那样形成明亮的反射光斑,而是在整个物体表面均匀分布的光线。漫反射对于物体的整体亮度和颜色起到重要作用,它使物体看起来不那么光滑,更加真实。

⭕️环境光照(Ambient lighting):**来自于周围环境的间接光照。**它是由光线在环境中多次反射、散射后到达物体表面的光线。环境光照是一种均匀分布的光照,没有特定的光源方向和强度。

在这里插入图片描述

🔔漫反射——兰伯特余弦定理

p7:47:50

  • 兰伯特余弦定律: c o s θ = l ⋅ n cosθ=l·n cosθ=ln
  • n:法线方向;l:光照方向
  • 不同角度物体的反射的光不同

在这里插入图片描述

🐇实时渲染管线⭐️

流程考察概率高,p8:32:47

⭕️简化的流程:从三维场景到最后渲染出二维图像的过程

  • 输入空间中一系列的点
  • 顶点处理
  • 三角形处理
  • 光栅化
  • 着色
    • 片段(像素)处理
    • 帧缓冲区处理
  • 输出

在这里插入图片描述

目前渲染管线都是在GPU里被编程完成了,只有顶点处理和片段处理可以编程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

🐇纹理映射

p8:54:50

⭕️纹理映射

  • 纹理映射就是定义任意点的基本属性
  • 每个三维模型上的任意点都能对应在uv坐标上的某个点上

在这里插入图片描述

  • 纹理可以被重复使用

在这里插入图片描述

  • 纹理是指一张或多张图像,用于覆盖(或映射)到三维模型的表面上,以增加模型的细节和真实感。
  • 着色是指为三维模型的表面赋予颜色和光照效果的过程。

⭕️重心坐标(定义与性质)

这个基本公式可能会考察,p9:4:20

  • 为什么要插值❓为了获取平滑的过渡
  • 插值的内容有哪些❓纹理坐标、颜色、法向量
  • 如何做插值❓重心坐标
  • 重心坐标是定义在三角形上的,在三角形ABC所形成的平面内(仅需要满足α+β+γ=1)任意一个点(x,y)都可以表示为三个顶点ABC坐标的线性组合
  • α、β、γ均为非负数,则(x,y)点一定在三角形内。

在这里插入图片描述

  • 面积法求解:

在这里插入图片描述

  • 三角形重心坐标:(三分面积)

在这里插入图片描述

  • 任意一点的重心坐标公式求解:

在这里插入图片描述

插值的应用:通过获得ABC点的值来获取到三角形内任意坐标的位置、颜色、法线、深度等信息;值得注意的是,在投影下不能保证坐标不变,所以要先插值再进行投影

在这里插入图片描述

⭕️应用材质

p9:20:57

将原本在各个顶点上的值,通过中心坐标插值到uv以及纹理坐标上的屏幕上的每个采样点上,纹理定义的值就是漫反射的系数 K d K_d Kd

在这里插入图片描述

💛纹理太小了怎么办❓——双线性插值:通过考虑原始图像中四个相邻像素的值和权重,生成平滑的缩放图像

p9:23:45

在这里插入图片描述

双线性插值(中,取邻近四个)和双三线性插值(右,取邻近16个),以下为双线性插值处理步骤

  • 找到(s,t),s、t都在0-1之间

在这里插入图片描述

  • 进行线性插值:先上下两点的水平插值,再进行竖直的插值。(也可以先竖直后水平)

在这里插入图片描述

  • 得到红点对应的值,红点综合考虑了四个相邻像素的值和权重,例如rgb值。

💛纹理太大了怎么办——Mipmap操作

p9:35:01

在这里插入图片描述
纹理太大,近处锯齿,远处摩尔纹——像素覆盖的纹理区域大的时候,不能简单以中心点去采样

在这里插入图片描述

可用超采样,就是取很多点,但是costly!

在这里插入图片描述

Mipmap

p9:44:01,Mipmap(从一张图生成一系列图)只能做近似的正方形的范围查询

  • level0是原始图像,每提高一个level,分辨率小一倍,利用相邻的四个像素的rgb作平均值
    在这里插入图片描述

  • mipmap的额外存储量是原始的⅓

在这里插入图片描述

  • 近似算正方形区域:

在这里插入图片描述

  • Mipmap操作
    • 在屏幕空间中取当前像素相邻的像素并查询其对应的uv坐标
    • 计算出当前像素点与其他像素点距离其他像素点的最大值
    • 根据最大值L通过上面公式计算得到该点所处的层数D

👀AI概念辅助理解

  • 在计算机图形学中,纹理映射是将二维图像(纹理)映射到三维模型表面上的过程。
  • 当一个纹理被应用到一个远离相机的表面时,原始纹理可能会因为距离较远而产生细节丢失和失真。这是由于远处的表面像素与相机之间的距离较远,导致原始纹理中的细节无法完全呈现
  • Mipmap是一组预先生成的纹理图像,其中每个图像都是原始纹理的不同大小和分辨率的版本。最底层的Mipmap级别是原始纹理的完整大小,而每个后续级别都是前一个级别的一半大小
  • 核心思想是,当渲染远离相机的表面时,使用较小的Mipmap级别,而当渲染靠近相机的表面时,使用较大的Mipmap级别。这样可以避免在远处使用原始纹理时产生的细节丢失和失真问题。
  • 通过选择合适的Mipmap级别,可以根据距离和表面大小来平衡图像质量和渲染性能。

📚几何

🐇几何表示方法的分类

p10:46:05

⭕️隐式(implicit)

  • 可以通过一个函数来表示的集合体。
  • 例如圆可以表示为 f ( x , y , x ) = 0 f(x,y,x)=0 f(x,y,x)=0
  • 优点:可以很容易判断某个点是否在几何体上。
  • 缺点:难以通过函数判断出几何体的真实形状。

⭕️显式(Explicit)

  • 通过参数映射(通过某个带有u,v的函数分别表示出x,y,z的坐标)表示表示的集合体。
  • 直接给出几何体。
  • 优点:容易看出几何体的真实形状。
  • 缺点:难以表示出某个点是否在几何体上。

🐇隐式几何

🥕CSG

p10:58:18

复杂的几何体通过简单几何体进行集合运算(交并补)得到,该操作被称之为CSG。

在这里插入图片描述

🥕距离函数

p10:1:01:01

在这里插入图片描述

  • 下图A与B进行融合操作后得到的blend(A,B),左边三分之一完全被挡住,中间被挡住一半,最后边完全被挡住。通过AB距离函数相加得到融合后的SDF图,可以转化为blend(A,B)这张图。
  • 距离函数:任何一个点到达边界的最短距离。

p10:1:03:29

在这里插入图片描述

在这里插入图片描述

  • 距离函数通过水平集得到 f ( x ) = 0 f(x)=0 f(x)=0

在这里插入图片描述

🐇显式几何

🥕多边形网络⭐️

p11:5:36

⭕️简介:将面拆解为多边形(大多是三角形和四边形),存储顶点和多边形信息。在图形学中应用最为广泛。

⭕️如何存储多边形信息

  • 使用OBJ格式将几何体的点、法线、纹理坐标分别表示,然后再表示面与面的连接关系。
  • 下图定义了一个立方体,有八个顶点(v),六个面(Vn),多个纹理坐标(vt)表示,然后使用f表示他们之间的关系(f V/Vt/Vn)

在这里插入图片描述

🥕贝塞尔曲线⭐️

算法,p11:13:02

⭕️贝塞尔曲线:只要求一定要经过起止点,起止点之间的若干个控制点用于控制曲线弯曲的方向,最终形成一条经过起止点的光滑曲线,被称为贝塞尔曲线。

在这里插入图片描述

⭕️德卡斯特利奥算法

p11:15:45

算法流程

  • 引入参数t(范围为0-1)
  • b 0 b_0 b0 b 1 b_1 b1 b 1 b_1 b1 b 2 b_2 b2上t位置的点 b 0 ′ b_0^{'} b0 b 1 ′ b_1^{'} b1
  • b 0 ′ b_0^{'} b0 b 1 ′ b_1^{'} b1连接
  • b 0 ′ b_0^{'} b0 b 1 ′ b_1^{'} b1的t位置上的点 b 0 " b_0^{"} b0"

在这里插入图片描述

  • 将所有的0-1的 b 0 " b_0^{"} b0"点都遍历一份相连即可得到贝塞尔曲线
  • 若有n个控制点则将上面步骤进行递归操作直到找到最终位移 b 0 n b_0^{n} b0n

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

公式

在这里插入图片描述

一般地:

  • 可以求得一个以t为自变量的函数,由这些点形成的集合构成贝塞尔曲线
  • b b b为n个贝塞尔控制点
  • B n B^n Bn为伯恩斯坦多项式

在这里插入图片描述

对贝塞尔曲线做仿射变换只需要对控制点、起止点做仿射变换再重新绘制一遍即可。

🥕网格操作⭐️

需掌握两种细分方法的顶点更新公式

  • 网格细分:让网格的面数更多
  • 网格简化:让网格的面数更少
  • 网格正规化:让网格中的三角形趋近于正三角形

⭕️Loop细分

p12:9:32,只能对完全为三角形的几何体进行细分

将每个三角形变为4个三角形,根据权重指定新的顶点位置,新老顶点以不同的规则来改变自己的位置:

在这里插入图片描述

  • 对于新的顶点V' = 3/8 * (A + B) + 1/8 * (C + D)

    • V ′ V' V为新的顶点变换后的位置
    • A、B为两个面被共享边的老顶点
    • C、D为非共享边的两个顶点

    在这里插入图片描述

  • 对于旧的顶点V' = (1 - n*u) * original_position + u * neighbor_position_sum

    • V’为旧的顶点变换后的位置
    • n为顶点的度(链接的顶点数)
    • 如果n=3则u=3/16其他情况u=3/(8n)
    • original_position为旧顶点原本的位置
    • neighbor_position_sum为邻居点的平均位置

在这里插入图片描述

在这里插入图片描述

⭕️Catmull-Clark细分

p12:20:51,相对于Loop细分,可以用于任意不同的面的细分

  • 奇异点顶点的度!=4
    在这里插入图片描述

  • 面的中点和面上线的中点连起来,在第一次细分之后,非四边形面数量会加到原本奇异点的数量上(原本有两个三角形面,在一次细分后,全为四边形面,而奇异点数目增加了两个)。

在这里插入图片描述

在这里插入图片描述

  • 顶点更新公式

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

maven在vscode添加依赖操作

1.maven查找依赖 点击进入网站&#xff0c;搜索需要的依赖包名选择一个合适的依赖 根据自己需要选择版本 选中maven&#xff0c;复制好代码&#xff0c;粘贴到pom.xml 2. 添加新的依赖 在pom.xml文件中&#xff0c;添加了依赖后&#xff0c;打开vscode终端&#xff0c;输入以…

matlab解微分方程

1.匿名函数 1.1创建 f(变量) 表达式; f(x1,x2) x1.^2x2;1.2 求解 x1为2 3 4 5&#xff1b;x2为3 4 5 6的情况下求解函数f的值 f(x1,x2) x1.^2x2; yf(2:5,3:6); subplot(121);%选择子图位置 plot(y)%画图2.一阶微分方程 用“dsolve” 2.1例 y.-y0 step1: 申明自变量和因…

一文2000字从0到1用Jmeter全流程性能测试实战

项目背景&#xff1a; 我们的平台为全国某行业监控平台&#xff0c;经过3轮功能测试、接口测试后&#xff0c;98%的问题已经关闭&#xff0c;决定对省平台向全国平台上传数据的接口进行性能测试。 01、测试步骤 1、编写性能测试方案 由于我是刚进入此项目组不久&#xff0c…

Linux--调试器:gdb

gcc与g默认动态链接形成的可执行程序&#xff08;比如a.out&#xff09;是release 版本&#xff0c;不可调试&#xff01;&#xff01;&#xff01; 如何搞成debug可调试版本&#xff1f; gcc 程序名 -o 可执行程序名 -g //添加了-g就表明该程序是debug方式发布的 查看可执行…

归并排序和基数排序包含完整程序和结果

一&#xff0c;归并排序 1.定义&#xff1a;将两个或者两个以上的有序表合并成一个新的游戏表的过程。 2路归并排序&#xff1a;假设排序表中有n个记录&#xff0c;则可以将其视为n个有序子表&#xff0c;每个子表的长度为1&#xff0c;然后两两合并&#xff0c;得到n/2&…

前端vue入门(纯代码)24_Modules

穷不怪父&#xff0c;苦不责妻&#xff0c;方为真男人&#xff01; 【23.Vuex中的模块化和命名空间】 [可以去官网看看Vuex3文档](Module | Vuex (vuejs.org)) 由于使用单一状态树&#xff0c;应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时&#xff0c;sto…

SQLServer2005位安装教程(图解)

进入下载的文件中,双击打开 :splash.hta 文件进行安装 根据自己的系统来选择性进行安装,这里我们选择第二项:基于 x64 的操作系统(6)。 然后在安装中选择“服务器组件、工具、练级丛书和示例©”的选项进行安装。 此处的注册信息可以忽略,非必填选项

第二章 模型评估和选择

文章目录 第二章 模型评估和选择2.1经验误差与过拟合2.2评估方法2.2.1留出法2.2.2交叉验证法2.2.3自助法2.2.4调参与最终模型 2.3性能度量2.3.1错误率与精度2.3.2查准率、查全率和F12.3.3ROC与AUC2.3.4代价敏感错误率与代价曲线 第二章 模型评估和选择 2.1经验误差与过拟合 通…

Unity-3d小游戏开发-----走迷宫

本人是在学习完c&#xff0c;c&#xff0c;数据结构算法&#xff0c;操作系统网络这些基础的课程之后&#xff0c;打算学习自己喜欢的游戏开发方向的东西&#xff0c;然后在B站上自学了几天unity&#xff0c;用到unity的触发器&#xff0c;碰撞&#xff0c;刚体&#xff0c;以及…

图像处理入门教程:从Python到Opencv

Python编程 这里主要针对有一定基础的读者&#xff0c;在Python编程中&#xff0c;掌握基础语法和数据类型是非常重要的。它们是构建程序的基石&#xff0c;是提供解决问题和开发应用的工具。在这里&#xff0c;我将简单介绍一些常用的语法和数据类型。 一、环境搭建 详细请…

14 - 信号优先级与安全性

---- 整理自狄泰软件唐佐林老师课程 查看所有文章链接&#xff1a;&#xff08;更新中&#xff09;Linux系统编程训练营 - 目录 文章目录 1. 信号优先级1.1 问题1.2 信号优先级的概念1.3 信号优先级实验设计1.3.1 发送端1.3.2 接收端1.3.3 编程实验&#xff1a;信号优先级实验 …

普通索引VS唯一索引

查询性能 假设 我们有一列int 类型的value 对它进行查询 (VALUE无重复字段) SELECT value FROM table where value 8; 如过是普通索引 找到value 8 的记录后还会继续找&#xff0c;直到碰到第一个不满足 k5 条件的记录。 如过是唯一索引 找到value 8这条记录就不会往下找…

百望股份高级PMO专家赵雅婧受邀为第十二届中国PMO大会演讲嘉宾

百望股份有限公司项目管理部高级PMO专家赵雅婧女士受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;PMO的组织建设与持续运营。大会将于8月12-13日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#xff1a; 众所周知&#xff…

图像全景拼接

TODO: 实现图片的全景拼接 流程&#xff1a; &#xff08;1&#xff09;检测左右2图片的SIFT关键特征点&#xff0c;并计算特征描述 &#xff08;2&#xff09;使用KNN检测来自左右2图的SIFT特征&#xff0c;进行匹配 &#xff08;3&#xff09;计算视角变换矩阵H&#xff0c…

目标跟踪基础:距离度量

本文来自公众号“AI大道理” —————— 距离度量在CV 、NLP以及数据分析等领域都有众多的应用。 距离度量可以当做某种相似度&#xff0c;距离越近&#xff0c;越相似。 在目标跟踪领域中&#xff0c;需要判断目标之间的距离或相似度&#xff0c;从而判断前后帧的目标是否…

Redis实战案例13-集群下的并发安全问题

在解决一人一单的问题上面&#xff0c;采用了悲观锁的方案&#xff0c;但是这种方案只适合单机情况&#xff0c;在集群的模式下就不适用了&#xff1b; 覆盖yaml文件中的端口号 修改nginx中conf&#xff0c;这样就可以反向代理到两个节点上去&#xff0c;轮询的负载均衡规则&am…

git bash---打开当前路径所在文件夹

0 Preface/Foreword 在Windows操作系统中使用git bash时&#xff0c;可以通过命令直接打开当前路径下的文件夹&#xff0c;命令如下 explorer .

MS17-010漏洞复现

官方描述&#xff1a;Microsoft Security Bulletin MS17-010 - Critical | Microsoft Learn漏洞描述&#xff1a; Microsoft Windows SMB Server远程代码执行漏洞&#xff0c;Microsoft Server Message Block 1.0 (SMBv1)服务器处理某些请求时&#xff0c;在实现上存在远程代码…

Mockplus Cloud - June 2023crack

Mockplus Cloud - June 2023crack 添加便签以澄清情节提要上的任何设计概念。 新的流程图工具直接在情节提要上可视化任何设计流程和过程。 添加了在发布到Mockplus Cloud时删除RP页面的功能。 添加设计注释时包括图像和链接。 添加了一个新的提示&#xff0c;用于在断开互联网…

MySQL练习题(1)

1,创建如下学生表 mysql> create table student( -> id int, -> name varchar(20), -> gender varchar(20), -> chinese int, -> math int, -> english int -> ); 插入如图数据 1-- 查询表中所有学生的信息 select *from student;2-- 查询表中所有学…