d3d11的转换-两个立方体发生旋转

这篇博客介绍了如何在Direct3D 11中使用矩阵进行3D几何体的转换,包括缩放、旋转和位移。通过XNA数学库函数,创建4x4矩阵来实现这些操作。文章详细阐述了缩放矩阵、旋转矩阵(围绕x、y、z轴)和位移矩阵的构建,并讨论了转换矩阵组合的顺序,以实现物体的正确变换。示例展示了两个立方体,其中一个围绕另一个旋转,通过不同的世界空间矩阵实现这一效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这儿介绍在3D场景中如何转换一个几何体。转换利用矩阵,使用xna数学库提供的函数来实现。


转换

在d3d中使用4x4的矩阵来做转换。这是因为它们使用4维度,3空间,x,y,z和1个变化,这1个变化是用字母w表示,w一般为0或1.当想要转换一个物体时,获取它的3D向量,v=[x,y,z],将w添加进去,因此就能够被4x4的矩阵乘了,所以它看起来像v=[x,y,z,1]。将w设为1,那就意味着它将会被转换。随后用4x4的矩阵M乘于v。vM的结果就是v'。v*M=v'。


xna函数库内的矩阵是XMMATRIX类型的。

                                   [M11,M12,M13,M14]
v'[x', y', z', 1]=v[x, y, z, 1] x M[M21,M22,M23,M24]
                                   [M31,M32,M33,M34]
                                   [M41,M42,M43,M44]
                                   
x'=(x*M11) + (y*M21) + (z*M31) + (1*M
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值