今儿个,咱来聊聊matrix.h这个东西。一开始看到这玩意儿,我也是一头雾水,这啥呀?后来捣鼓一番,才算摸清点门道,这就来跟大伙儿分享分享。
我是想弄个啥图形变换,听起来挺高级的,什么旋转、平移、缩放,感觉跟拍电影似的。然后就搜搜,发现好多人都提到matrix.h这个东西。我就想,这肯定是个关键,得好好研究研究。
第一步:找到它!
这玩意儿,它不是那种现成的,直接就能用的。得自己动手,丰衣足食。我先是找个地儿,新建个文件,就叫matrix.h。然后,得往里面填东西。
第二步:填代码!
这一步,有点麻烦。因为我得知道里面该写还网上有大神分享代码。我这儿也给大伙儿看看:
#ifndef MATRIX_H
#define MATRIX_H

#include"darknet.h"
//... 后面还有一大堆
看到这代码,我当时就想,这都啥跟啥?#ifndef
, #define
, #include
… 硬着头皮往下看。大概意思就是,先检查一下有没有定义过MATRIX_H
,如果没有,就定义一下,然后引入一个叫darknet.h
的头文件。这darknet.h
又是不管,先放着。
第三步:定义类!
代码里头,最关键的,就是定义两个类,一个叫Matrix_
,一个叫Matrix
。这俩名字还挺像,不过Matrix
是继承自Matrix_
的。这就像啥?儿子继承老子的家产,差不多就这意思。
这两个类,就是用来表示矩阵的。有它们,咱才能进行那些个图形变换。具体咋用?别急,慢慢来。
第四步:折腾!
有matrix.h,我就开始折腾。我主要是想实现图像的旋转。这可把我给折腾坏。一会儿图像歪,一会儿图像扁,反正就是不对劲。后来我发现,是我对矩阵的理解不够。这矩阵,它里头的数字,可不是随便填的,得按照一定的规则来。
然后我就去补课,学点线性代数的知识。这玩意儿,当年上学的时候就没学现在还得补回来。不过为实现我的目标,值!
第五步:成!
经过一番折腾,我终于把图像旋转给弄出来!看着那图像按照我的意愿转来转去,心里别提多高兴。虽然过程有点曲折,但结果是好的。这也算是我的一次小小的成就。
这回捣鼓matrix.h,让我学到不少东西。不仅解矩阵的用法,还顺带复习一下线性代数。虽然过程有点痛苦,但收获还是满满的。以后再遇到类似的问题,我也不会那么慌。毕竟咱也是“玩”过矩阵的人!