flash3D开发基础-------数学基础1

本文来自: 圣骑士Wind的博客 Blog
作者:圣骑士wind
文章原地址: http://www.cnblogs.com/mengdd/archive/2011/08/30/2598026.html

Part 1 最基础的部分:

3D世界中的点和方向多用一个4D向量表示,前三个向量是XYZ,第四个分量是W.

第四个分量的引入有两个作用:一是为了区分向量和点。二是为了进行变换。

W=1表示点,可以平移。

W=0表示向量,平移对其不起作用。因为它只是用来表示方向的。

3D中常用的变换多是用矩阵和向量相乘来实现,和4D向量相乘,所需要的变换矩阵是4×4的形式,可以实现平移、旋转、缩放。

因为图形API的不同,向量和矩阵的形式会对应不同。

DirectX使用行向量,行向量左乘矩阵得到行向量。转换顺序是从左往右发生:vABC,表示v向量先进行A转换,再B,再C.

OpenGL使用列向量,列向量右乘矩阵得到列向量。转换时从右往左:CBAv。

Part2 转换矩阵讨论

线性代数基础:

首先弄清楚线性代数中的几个概念:

转置矩阵:一个矩阵的转置矩阵就是将这个矩阵的行列交换。

逆矩阵:一个矩阵乘以它的逆矩阵得到单位矩阵。

正交矩阵:若一个矩阵的转置矩阵就是它的逆矩阵,那么这个矩阵就是正交矩阵。

转换矩阵包含了平移、旋转、缩放。

一个矩阵可以单纯地表示一种变换,如只表示平移,可以将它称为平移矩阵。

矩阵也可以同时表达多种变换,如将平移矩阵和旋转矩阵相乘就可以得到先平移后旋转的矩阵。注意矩阵相乘的顺序很重要,交换顺序后得到的结果不同。

根据逆矩阵的性质可以知道,逆矩阵表达的是相反的变换,乘以变换矩阵后再乘以逆矩阵等于总体乘以了一个单位矩阵。

平移矩阵的逆矩阵可以直接将平移参数取负。(前后加减平移参数得0)。

缩放矩阵的逆矩阵就是将对角线上的三个缩放参数取自身的倒数。(前后相乘缩放参数得1)。

旋转矩阵的逆矩阵可以将旋转的角度参数取负,表示再转过相反的角度。

可以发现只有旋转矩阵的逆矩阵是转置得到的,所以只有旋转矩阵是正交矩阵

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值