《OpelGL编程指南第七版》---对变换的思考

以下是我自己结合书的例子的思考,如有错误,欢迎指正,大家一起学习
OpenGL中矩阵默认为列优先。C/C++中默认是行优先的。也就是说当年你构建一个二维数组时,在内存中是一行一行存储的,顶部的行在更低的地址区。矩阵相乘时,行优先采用我们数学中正确的方式,即一行和一列对应相乘再求和 Cij = ∑ Ain * Bnj。而列优先中计算为一列与一列对应相乘再求和Cij = ∑ Ani * Bnj
比如一个点(x,y,z,w)先平移变换T:(x1,y1,z1),再按Z轴旋转R:θ,则c/c++中变换矩阵存储为

100001000010x1y1z11  [ 1 0 0 x 1 0 1 0 y 1 0 0 1 z 1 0 0 0 1 ]  

cosθsinθ00sinθcosθ0000100001  [ c o s θ − s i n θ 0 0 s i n θ c o s θ 0 0 0 0 1 0 0 0 0 1 ]  

而OpenGL中存储为

100x1010y1001z10001  [ 1 0 0 0 0 1 0 0 0 0 1 0 x 1 y 1 z 1 1 ]  

cos
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值