OpenGL笔记九:3D数学小记

作者: 御雪飞斐 | 来源:发表于2019-06-02 17:54 被阅读28次

前言

期待您移步上篇:OpenGL笔记八:2D纹理坐标解析

向量大小计算:

||V|| : 为向量V的模。


向量大小计算公式.png

向量与标量的除法:

向量与标量的除法.png

标准化向量:

标准化向量.png

示例:


示例-1.png

零向量是不能被标准的,数学是上不允许的。因为将导致除数为0,几何上没有意义。因为零向量没有方向。

向量点乘

向量点乘.png

点乘的几何意义

a • b = ||a|| ||b|| cos(q) 
//q为a,b向量的夹角
  • 3D中,两向量的夹⻆角是在包含两向量的平⾯中定义的。


    点乘夹角q.png
  • ⽤点乘计算2个向量之间的夹⻆角q,如果a,b都是单位向量
q = arccos ( a • b )
a·b q角度 a 和 b
>0 0° ≤ q < 90° 方向基本相同
=0 q = 90° 正交
<0 90° < q ≤ 180° 方向基本相反

示例:


示例-1.png
示例-2.png

向量叉乘

向量叉乘.png

向量的叉乘⼏何意义

  • 向量a,b在⼀个平⾯中。向量a * b 指向该平⾯的正上⽅,垂直于a 和b a * b 的⻓长度等于向量的⼤⼩与向量夹⻆角的sin值的积,如下:
|| a * b || = ||a|| ||b|| sin∂

矩阵基础

标量与矩阵相乘

标量与矩阵相乘.png

矩阵与矩阵相乘

Arn * Bnm = Crm
即:r行n列矩阵A 叉乘 n行m列矩阵B = r行m列矩阵C

  • 矩阵相乘法则:对结果中的任意元素Cij,取A的第i⾏和第j列,将⾏和列中的对应元素相乘。然后将结果相加等于A的i行和B的j列的点积)。Cij就等于这个和。
    矩阵相乘.png
    示例.png

矩阵乘法注意事项:

  • 1.任意矩阵M乘以⽅阵S,不管从哪边乘,都得到与原矩阵⼤⼩相同的矩阵。当然,前提是假定乘法有意义。如果S是单位 矩阵,结果就是原矩阵M,即:MI = IM = M 。
  • 2.矩阵乘法不满⾜交换律,即:AB != BA
  • 3.矩阵乘法满⾜结合律,即:(AB)C = A(BC)。假定ABC的维数使得其乘法有意义,要注意如果(AB)C有意义,那么A(BC)就 ⼀定有意义。
  • 4.矩阵乘法也满⾜与标量或向量的结合律,即:(kA)B = k(AB) = A(kB); (vA)B = v(AB);
  • 5.矩阵积的转置相当于先转置矩阵然后以相反的顺序乘法,即:(AB)T = BT AT

矩阵与向量相乘 注意事项:

  • 1.结果向量中的每个元素都是原向量与矩阵中单独⾏或列的点积;
  • 2.矩阵⼀向量乘法满⾜对向量加法的分配律,对于向量v,w 和 矩阵M 有,
    (v + w)M = vM + wM;

矩阵⼏何意义

1.⽅阵的⾏能被解释为坐标系的基向量;
2.为了将向量从原坐标系变换到新坐标系,⽤它乘以⼀个矩阵。
3.从原坐标系到这些基向量定义的新坐标系的变化是⼀种线性变换。线性变换保持直线和平⾏线。但角度、长度、 ⾯积或体积可能会改变。
4.零向量乘以任何矩阵仍然得到零向量。因此,⽅阵所代表的线性变换的原点和原坐标系原点⼀致。变换不包含 原点。

3D旋转 围绕任意轴旋转向量

绕n轴旋转⻆角度∂之后的矩阵:


任意轴旋转公式.png

期待您移步下篇:OpenGL笔记十:OpenGL ES初探

相关文章

  • OpenGL笔记十:OpenGL ES初探

    前言 期待您移步上篇:OpenGL笔记九:3D数学小记 OpenGL ES OpenGL ES允许应⽤程序利⽤底层...

  • OpenGL笔记九:3D数学小记

    前言 期待您移步上篇:OpenGL笔记八:2D纹理坐标解析 向量大小计算: ||V|| : 为向量V的模。 向量与...

  • 02总结--010--OpenGL 基础变换:向量和矩阵的深入理

    在正式进入本章节内容之前,先来正视几个观念。 1. 3D 数学在OpenGL中充当什么角色? 对于学习OpenGL...

  • OpenGL向量、矩阵应用

    一、3D数学 3D数学.在图像图形开发中的充当了什么⻆色?对于学习OpenGL 有一个误区,就是大家认为如果不能精...

  • OpenGL 之3D数学

    3D数学和图像图形的关系 对于学习OpenGL 有一个误区,就是大家认为如果不能精通那些3D图形数学知识,会让我们...

  • OpenGL 3D数学

    1.标量与向量相乘 k * [x, y, z] = [x, y, z] * k = [kx, ky, kz] 2....

  • OpenGL中的向量和矩阵

    OpenGL坐标变化时经常用到矩阵来计算变化后点的位置,为了更好的理解3D数学在OpenGL中的作用,本文将简单地...

  • OpenGL 3D数学篇

    1

  • OpenGL之3D数学

    向量 向量是既有大小又有方向的量。 零向量与单位向量 模等于0的向量为零向量,模等于1的向量叫做单位向量。注意零向...

  • OpenGL ES Android 第一课

    官网镇楼OpenGL 简介 openGL 与 OpenGL ES 区别 OpenGL 跨平台的高性能3D渲染AP...

网友评论

    本文标题:OpenGL笔记九:3D数学小记

    本文链接:https://www.haomeiwen.com/subject/ihnxxctx.html