美文网首页OpenGL
六、OpenGL 向量 矩阵

六、OpenGL 向量 矩阵

作者: 夏天的枫_ | 来源:发表于2020-07-17 19:02 被阅读0次

一、向量

  • 向量是指在3D笛卡尔空间坐标系中,坐标系中的一个的一个顶点位置,这个顶点拥有X、Y、Z坐标值。
  • 单位向量:长度为1的向量
    向量长度计算(向量的模)
  • OpenGL定义的向量库——math3d
    math3d有两个数据类型:
    M3DVector3f:三维向量(x, y, z)
    M3DVector4f:思维向量(x, y, z, w),其中典型情况下,w的坐标为1.0,x,y,z值通过除以 w 来进行缩放,而x,y,z的值本质上也不会改变。
  • 向量点乘(dot product)
    向量可以进行加减计算,而其中点乘在开发中应用非常多。
    若两个三维的单位向量进行点乘将得到一个标量,它表示这两个向量的夹角值,值的范围为[-1, 1],其实为夹角的cos值(余弦值)
    假设有a、b向量点乘
math3d 库中点乘API
// m3dDotProduct3 函数获得2个向量之间的点乘结果
float m3dDotProduct3(const M3DVector3f u , const M3dVector3f v);
// 2. m3dGetAngleBetweenVector3 即可获取2个向量之间的夹角弧度值
float m3dGetAngleBetweenVector3(const M3DVector3f u ,const M3DVector3f v);
  • 向量叉乘
    A、B两个向量叉乘之后会得到一个新向量,新向量与A、B两个向量定义的平面垂直。(叉乘向量不必为单位向量)
// m3dCrossProduct3 函数获得2个向量叉乘,最终得到一个新向量
void m3dCrossProduct3(M3DVector3f result,const M3DVector3f u,const M3DVector3f v);
矩阵

OpenGL约定中,默认以列矩阵作为对矩阵的描述,且以一维数组作为对矩阵的存储,其他编程中多以二维对矩阵的存储形式。
以列矩阵为例,一个矩阵和一个向量相乘时,必须要求矩阵的行数与向量的列数相同,才能进行相乘计算。

模型 说明
视图变换 指定观察者位置
模型变换 在场景中移动物体
模型视图 描述视图/模型变换的二元性(2种看到模型转换的方式)
投影 改变视景体大小和设置它的投影方式
视口 伪变化,对窗口上最终输出进行缩放
  • 视图变换:在做任何变换之前,必须先应用视图变换;否则其他变换在前,但视图变换发生后,会改变之前的其他变换的坐标

模型变换

模型变换:用于操纵模型与其中某特定变换,这种变换将对象移动到需要的位置,通过旋转、缩放、平移。两种看待模型变换的方式: ①移动观察者 ② 移动坐标系

  • 平移: 将图像沿着给定轴进行移动
void m3dTranslationMatrix44(M3DMatrix44f m, float x, float y, float z);
  • 旋转:将图像围绕某一坐标轴进行旋转
// m3dEGtOrAD(45.0) : 度数转弧度
m3dRotaionMatrix44(m3dEGtOrAD(45.0),float x,float y float z)
  • 缩放:将图像的大小进行指定数量的放大or缩小
void m3dScaleMatrix44(M3DMatrix44f m, float xScale, float yScale, float zScale);

相关文章

  • 六、OpenGL 向量 矩阵

    一、向量 向量是指在3D笛卡尔空间坐标系中,坐标系中的一个的一个顶点位置,这个顶点拥有X、Y、Z坐标值。 单位向量...

  • OpenGL--向量和矩阵

    在我们OpenGL中涉及到图形变换的时候经常会运用到向量/矩阵的运算。今天我们就来了解下OpenGL中的向量、矩阵...

  • OpenGL 向量、矩阵

    向量 在坐标系上,一个顶点就是X,Y,Z坐标空间的一个位置。由一个单独的XYZ定义的这样就是向量。 单位向量 向量...

  • OpenGL向量、矩阵

    向量 在 3D 笛卡尔坐标系, 基本上一个顶点就是XYZ 坐标空间上的⼀个位置。而在空间中给定的一个位置恰是由一个...

  • OpenGL 向量/矩阵

    向量 什么是向量 在3D笛卡坐标系中,基本上,一个顶点就是XYZ坐标空间上的一个位置。而在空间中给定的一个位置,恰...

  • OpenGL 矩阵基础变化

    OpenGL⾥的矩阵/向量 向量:3个值(x、y、z)组合起来表示2个重要的值,⽅向和数量. 矩阵: 在OPenG...

  • 六、OpenGL 中的向量、矩阵

    向量 1. 首先让我们了解什么是标量 标量亦称“无向量”。有些物理量,只具有数值大小,而没有方向,部分有正负之分。...

  • 六、OpenGL中的向量、矩阵

    向量 了解向量之前,先了解什么是标量 标量:只有大小,例如:1,12,13等 向量是有方向的标量,即不仅有大小,还...

  • OpenGL(六) OpenGL中的向量与矩阵

    向量 在高中时期,其实大家就已经学过向量的相关知识了,这儿我们再复习一遍。 什么是向量? 在数学中,向量(也称为欧...

  • OpenGL--- (六)OpenGL中的向量、矩阵

    向量 在3D笛卡尔坐标系中,基本上一个顶点就是XYZ坐标空间上的一个位置,而在空间中给定的一个位置恰恰是由一个单独...

网友评论

    本文标题:六、OpenGL 向量 矩阵

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