3D数学基础:图形与游戏开发笔记2

3D数学基础:图形与游戏开发——关于矩阵(1)

维数相同的矩阵可以进行加减,就是各个元素的加减。

1.矩阵与向量的乘法

故:1.行向前后矩阵中,结果列列分量和

       2.列向中后矩阵前,结果行行分量和

      or

      行向前后矩阵中,列向中后矩阵前

      所乘向量是行矩为列,是列矩为行,结果形为所乘,分量为点积(自己的口诀)

书面化语言:

 1.矩阵与矩阵的乘法

当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。

矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。(鉴于向量可以看作矩阵,估计向量与矩阵相乘也必须遵守,但是目前并未在书中看到。。。。)

乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。

图示:

3.矩阵的具体概念

的确还是没有搞懂这个矩阵到底是什么东西,但是先将所思所感记录下来:

书中概念也是很模糊。

在我看来,矩阵是为了描述某种变换的(的确和书上的一样),平移,旋转,缩放等,四大变换(世界,观察,投影,视口)

就《DirectX9.03D游戏开发编程基础看来》上看到的,矩阵的确如此。

当然,他也可以描述位置(用的不多,目前在世界变换中看到过),但是,如果要描述物体的某种变换就用一个矩阵简单相乘的道理不是更简单么?

问题就在于求得矩阵了,而这,并不是我们的事情——数学的力量!

我们只要拥有并使用就行了,大概如此吧。

矩阵简单了变换,代表了变换。

4.矩阵有意思的例子

单位矩阵:顾名思义,就是乘它不会改变的矩阵:AB=A,所以B为单位矩阵

                 就是所有元素中对角线为1,其他都为0的矩阵

                 即:(由矩阵乘法也可以轻松的推出来)

                

              其实这不是全貌,如你所见,矩阵拆成向量,即为此图

              

5.矩阵旋转(旋转矩阵求法)

本人数学基础较差,推倒过程就看不懂了,但是这些也是需要知道的:

1.绕x轴旋转:

2.绕y轴旋转:

 3.绕z轴旋转:

4.绕任意轴旋转

就个人理解,p,q,r是基向量,分别代表了x,y,z三轴

就第一个为例子,绕x轴旋转,其实x是不必改变的,所以p为[1,0,0],而绕x轴旋转,可以将以整个3D空间降维成以垂直于x轴经过原点的一个平面的一个2D平面,于是乎,y降为x,z降为y,q,r中的x分量变成了0,变成了2D,推倒2D还不是很简单?

如图:

如你所见,将第一个例子中的矩阵中的常数元素都删去即为2D旋转矩阵。

当然数学的证明的确不是我擅长的,幸运的是,D3DX已经写了几个函数了:

1.绕x轴旋转

D3DXMATRIX* D3DXMatrixRotationX(
    D3DXMATRIX* pOut, //返回的结果    
    FLOAT Angle       //旋转的角度
);

2.绕y轴旋转

D3DXMATRIX* D3DXMatrixRotationY(
    D3DXMATRIX* pOut,
    FLOAT Angle
)

 

3.绕z轴旋转

D3DXMATRIX* D3DXMatrixRotationZ(
    D3DXMATRIX* pOut,
    FLOAT Angle
)

4.绕任意轴旋转

D3DXMATRIX* D3DXMatrixRotationAxis(
    D3DXMATRIX* pOut,
    CONST D3DXVECTOR3* pV, //绕那根轴转
    FLOAT Angle
)

 

本人资源全部免费,更多资源请查看我的上传资源 ====================================================== 书 名:3D数学基础图形游戏开发 作 者:[美] 邓恩(Dunn F.),[美] 帕贝利(Parberry I.) 著;史银雪,陈洪,王荣静 译 出 版 社: 清华大学出版社 出版时间:2005-07-01 ISBN:9787302109464 纸书页数:380页 定 价:¥ 42.00 内容简介:《3D数学基础图形游戏开发》专业培训机构指定教学参考书,多家游戏开发企业共同推荐,游戏业界,探索游戏开发背后的核心秘密。《3D数学基础图形游戏开发》主要介绍了基本的3D数学概念,这对电脑游戏开发人员和编程人员来说尤为重要。作者详尽地讨论了数学理论,并在必要时提供几何说明,帮助读者形成直观的3D感。书中还提供了将理论应用于实践的C++类,并且在每章结尾处提供练习。《3D数学基础图形游戏开发》介绍了基础概念,如向量、坐标空间、矩阵、变换、欧拉角、齐次坐标空间、几何图元、相交性检测和三角网格。 作者简介:Fletcher Dunn,是著名游戏开发公司Terminal Reality的主要开发人员,所参与开发游戏包括《4×4DVO 2)、《夜曲》(Noturne),并且是《吸血莱恩》(BloodRayne)的主要负责人。他所开发游戏遍及家用PC机的Windows、Machintosh、Dreamcast、PSⅡ、Xbox和GameCube几种主流平台。   Ian Parberry,是北德克萨斯大学计算机科学系的教授,在国际上被公认为是教授DirectX游戏开发的专家之一。 编辑推荐:《3D数学基础图形游戏开发》主要研究隐藏在3D几何世界背后的数学问题。涵盖了理论知识和C++实现代码。理论部分解释3D数学和几何之间的关系,列出的技巧与公式可以当做参考手册以方便查找。实现部分演示了怎样用代码来实现这些理论概念。读者论论了3D中的方位,包括四元数和对不同表示技术之间的优劣比较。   描述了数学和几何的实际应用示例,提供了一些C++类和不同的矩阵类,每个类都完成特定的几何任务。   所有基本变换矩阵的完整来历。      专门用Python讲解计算机视觉编程 目录 第1章 简介 1.1 什么是3D数学 1.2 为什么选择本书 1.3 阅读本书需要的基础知识 1.4 概览 第2章 笛卡尔坐标系统 2.1 1D数学 2.2 2D笛卡尔数学 2.3 从2D到3D 2.4 练习 第3章 多坐标系 3.1 为什么要使用多坐标系 3.2 一些有用的坐标系 3.3 嵌套式坐标系 3.4 描述坐标系 3.5 坐标系转换 3.6 练习 第4章 向量 4.1 向量——数学定义 4.2 向量——几何定义 4.3 向量与点 4.4 练习 第5章 向量运算 5.1 线性代数与几何 5.2 符号约定 5.3 零向量 5.4 负向量 5.5 向量大小(长度或模) 5.6 标量与向量的乘法 5.7 标准化向量 5.8 向量的加法和减法 5.9 距离公式 5.10 向量点乘 5.11 向量叉乘 5.12 线性代数公式 5.13 练习 第6章 3D向量类 …… 第7章 矩阵 第8章 矩阵和线性变换 第9章 矩阵的更多知识 第10章 3D中的方位与角位移 第11章 C++实现 第12章 几何图元 第13章 几何检测 第14章 三角网络 第15章 图形数学 第16章 可见性检测 第17章 后记 附录A 简单的数学概念 附录B 参考文献
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值