几何变换中的矩阵可以这样理解!

 
模型变换(矩阵)
数学就是一套符号及用符号表示的规则,用符号化的规则来描述自然现象、探究自然规律就便于表示、理解、记忆和运算。在数学领域里,前人创造的这套规则是“开放性”的,从中总能找到或发明一个规则来解释、描述和推理自然现象和规律,不失为前人智慧的结晶。
 
矩阵也是数学中的一个名词,它是一个组相关的数据符号的集合,并以行列的形式表示。
矩阵之间的运算就是将矩阵数据符号按前人规定的某种规则计算获得新的数据阵列。
 
三维模型变换中,一个点a的位置与一个矩阵相乘后,得到另一个点b的位置。也就是三维模型通过与矩阵运算,就能导致其位置的改变。细想下,就有提出一个问题,一个矩阵为何能反应一个三维空间中模型的空间位置?
如果不用矩阵方式来计算模型变换就会发现,用传统的计算方式来计算平移、旋转和缩放等模型变换,其计算过程,可以用矩阵的计算来套合传统的模型变换计算,也即只要将平移距离(旋转角度或缩放比例)和参照原点等变换参数放到矩阵相应的位置,通过矩阵运算获得的结果及效果与不用矩阵的传统计算结果相同,从而变换计算就套用矩阵来运算,模型变换采用矩阵方式计算,其计算过程就易于描述、记忆、计算和理解。
为了表示上的方便、一致,又引入了“齐次坐标”概念,一个三维空间点用四个位置值表示。,矩阵相应地采用了4介(4*4)矩阵。
      
       一个矩阵其实就是一个用户坐标系,一个用户坐标系由三个矢量(三个坐标轴)和一个原点组成。
 
在三维应用中,通常说的“单位矩阵”就是一个与“世界坐标系”重合的特殊用户坐标系。
单位矩阵的三个矢量和一个原点为:
X矢量(X轴方向):(1,0,0)
Y矢量(Y轴方向):(0,1,0)
Z矢量(Z轴方向):(0,0,1)
原 点:(0,0,0)
 
单位矩阵A = | 1 0 00|
                       |0 1 00|
                       | 0 0 10|
                       |0,0,0,1|
(红色为矢量,蓝色为原点)
矩阵第一行为:X矢量 + 原点的X坐标值
第二行为:Y矢量 + 原点的Y坐标值
第三行为:Z矢量 + 原点的Z坐标值
第四行为:齐次坐标h值
 
世界坐标系,只是个概念,所有用户坐标系的坐标值都以世界坐标系为参照,而模型以用户坐标系为参照。默认情况下,三维模型处在单位矩阵所表示的坐标系中。
在三维空间中,每个模型都有各自矩阵,也就是有各自的所参照的用户坐标系,模型变换可看成该模型对应的矩阵也就是坐标系在变化,矩阵变,则模型特征点的坐标值就随之改变。最后,各个模型以其各自的坐标值统一被放置到世界坐标系中。
 
 
观察(投影 / 窗口 / 视口)
       便于对三维观察的理解,拿武汉市举例如下:
如你站在武汉市的汉口江滩看风景,你眼中的画面是:江面、黄鹤楼及江对岸的高楼大厦。
如你站在黄鹤楼看风景,映入你眼睛的又是不一样的画面:江面、大桥及龟山电视塔。
如你处在高空俯瞰,武汉风景将尽收你眼底。
你站在不同的位置,眼中的画面不一样。
你观察的位置就是“视点”的位置。你观察方位的改变就是“视点变换”。
 
现在先用一个三维空间的场景来模拟武汉市,且将模型放置到世界坐标系中,将黄鹤楼模型放在世界坐标系的原点上,或者将长江大桥中心放原点上(该过程对应“模型变换”)。世界坐标系和武汉的三维模拟场景只是计算机的内部数据,而我们的目的是要将存在计算机内的模拟场景数据以图片的形式在电脑屏幕上显示出来。现在你可以将计算机屏幕设想为照片用的像纸(对应术语“视口”,与屏幕关联),如果想要黄鹤楼显示在像纸上,你就要拿着照相机对着黄鹤楼,在准备拍照时,如果有一个小孩恰好在你拍照范围内(调焦和取景过程对应术语“投影变换”),为不影响你照片效果,就等小孩离开拍照范围(离开“视影体”)或重新调整相机角度(重新选择“视影体”),使小孩不在拍摄范围内,再咔嚓将黄河楼映到相机内的胶片上(该过程对应术语“开窗口”和“投影”,胶片就相当于“窗口”,与世界坐标关联),随后就可以将胶片的图象冲洗到相纸(电脑屏幕)上了(该过程对应术语“视口变换”)。同一个胶片(“窗口”),相纸(“视口”)越大,冲洗的照片越大,看得越清楚。
 
总为一句话:处在三维空间的模拟场景以数据的形式存于计算机内,在屏幕上显示的景点及显示大小,完全取决于:你拍照的位置(“视点”),对着哪个景点拍照(“投影”,“开窗口”),及冲洗相纸的大小(“视口”)。
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值