今儿来跟大伙儿聊聊我在捣鼓图形编程时碰到的一个小玩意——D3DXMatrixMultiply。说白,这就是个用来把俩矩阵“揉”到一块儿的家伙。
一开始接触这玩意,我还真有点懵。你知道的,搞这些图形相关的东西,矩阵运算少不,但具体怎么个弄法,还真得好好琢磨琢磨。前段时间我就想实现一个图形的旋转效果,脑袋里第一反应就是矩阵乘法应该能搞定,于是我就去翻翻我的那些“宝贝”资料,试图找到些思路。
然后,我就瞅见 D3DXMatrixMultiply 这位“大神”。我心想这名字听起来就挺靠谱,八成就是它!然后我就开始细细研究它的用法。
用法很简单,主要就是 D3DXMatrixMultiply 这个函数,它需要三个参数:
- 第一个是用来装结果的矩阵,好比一个空碗,等着盛菜;
- 第二个和第三个,就是你要乘的那俩矩阵,可以理解为原材料,俩菜。
比方说,我想把矩阵 A 和矩阵 B 乘一下,结果放到矩阵 C 里,那就这么写:D3DXMatrixMultiply(&C, &A, &B)。这么一弄,C 里面就装着 A 和 B 的“孩子”。
实践出真知嘛光看肯定不行。我立马打开我的老伙计——电脑,敲起代码。我先是定义几个 D3DXMATRIX 类型的变量,然后给它们赋上值,这就好比准备好要炒的菜和装菜的碗。然后,我就调用 D3DXMatrixMultiply,把这几个变量给传进去。跑起来一瞧,结果还真就出来!
中间也遇到一些小插曲,比如说矩阵的顺序问题。一开始我没太注意,把俩矩阵的顺序给搞反,结果出来的图形跟我预想的可不一样。后来我才反应过来,这矩阵乘法可是讲究顺序的,不同的顺序出来的结果可能天差地别。这就好比你炒菜,先放盐和先放酱油,那味道能一样吗?
经过一番折腾,我总算是把这个 D3DXMatrixMultiply 给摸透。用它来实现图形的旋转、缩放这些操作,那叫一个顺溜。现在我再也不用为矩阵乘法头疼,图形想怎么变就怎么变,别提有多爽!
这回就聊这么多。总结起来就是一句话:D3DXMatrixMultiply是个好东西,能帮你轻松搞定矩阵乘法。大家有空也来试试!