粉丝1364获赞2047


哈喽,大家好,欢迎大家来到计算机图形学的课堂,那么今天给大家聊的是计算机图形学如何从小白到入门到精通。首先你要学会的是图形学编程的基础原理,包括词佳佳编程语言,线性代数,空间变换、光山化逻辑 图片的读录与处理,以及我们纹理的彩样。在这一切的基础上,你就可以实现一个叫做乱光山的程序, 那么远光山是指只给你一个在窗口上画点的功能,你又如何能够通过编写逻辑创建一个三维的世界呢? ok, 在我们打完一切的基础的情况下,我们就可以进入到图形 api 的学习当中。在我们的课程里面,图形 api 推荐首先从 oppo pgl 开始学习, oppo gl 是一个跨平台的通用图形 api, 在学完 oppopngl 之后呢,如果你还有进阶的欲望,那么希望你可以去学习 volvon, volvon 呢,被称为下一代图形 api 的十足。 ok, 在你打完所有的基础之后,并且学会了图形 api, 相信你已经是一个比较入门级的图形程序员了。那么在这里呢,希望你接下来要掌握至少一款商业级应用引擎。 那在这里呢,推荐大家学习 unitate 三 d, 因为呢,它在咱们国家使用的范围是相当之广,并且入门的难度呢没有这么高。好的对图形学编程有兴趣的同学呢,敬请收藏、点赞关注也请私信联系我。

做了梦,梦梦里有你。今天做起。潇洒潇洒。我纳米达摩你懂 tonight 断了无论多年以后你明年做起。在沙克沙漠纳米达摩你到做 nine 密码在卡拉扣错什么意思?那都开开 id no more 我们在卡拉姆在卡拉莫诺你敢拿?

好,我们现在开始欧喷巨谣加 qt 的学习,那首先来看一下我们能从这个课程里面学到什么。我们的主角是欧喷巨谣,所以我们会学到大量计算机同学方面的基础知识,那如果你有现行代数的基础知识的话,那么肯定会有很大的帮助啊,主要是像量啊,矩阵的这些, 那么我们会在 qt 里面进行欧根据欧的开发,这样呢可以节省我们大量的配置时间,而且呢他有些东西封装的很好,但我们理解起来肯定会更方便一点, 所以我们需要 cctr 和 qt 的一些相关的技术知识。本来欧根据啊,他面向我们用户啊,就是 厂商开发好的这些 api 就是基于 c 的,所以呢对 c 家家的要求肯定还是要的。那我们先看下面这个 我们能学到什么啊?这是用 qt 搭建那个界面,做了一个简单的这个配色,然后呢我们增加了两个 x, 也就是两个按钮, 在我们工具栏里面,你点第一个按钮的时候,他会在这个区域,这个区域是 qt 封装好的一个组件,他是你可以理解为是支持 这是欧喷巨额窗口的那一这样的一个组件,那么在这个组件里面,我们就可以用欧喷巨额命令去生成这样的图形,是吧?然后你再点他呢,他又用欧喷巨额的命令去把这个图形给销毁,然后又回到我们左边这个状态, 具体的细节我们会在后面的课程里面进行介绍。那这个例子呢,将会作为我们可能第一章的最后一个例子,也就说我们第一章的主要任务就是把这个框架给搭起来啊,告诉你 欧文曲要的一些基础知识啊,并且呢,把欧文曲要和 qt 啊这样的联系起来,但如果你对欧文曲要已经很了解了,只是你不知道怎么结合 qt, 那看完这一部分就就应该给你够了。那么大家简单来看一下,为什么要学习欧分曲要,既然你来看这个课程,那你应该是知道的, 现在无论你用哪一种图形引擎,其实背后的原理都差不多的啊,基本上就图一学这块都差不多的,而且大部分呢,其实底层用的就是个分歧啊,那比如说你如果现在学习的是啊用力三 d 做游戏的啊,会循环引擎,或者说呢,有一些工业部门呢,或者一些 部门用的是欧式剧那些特殊部门啊,因为这个其实就可以理解为面向对象的这个欧分局啊,对吧,那欧分局要本身是 c 的, c 是面向过程的,那欧 剧呢,就给他封装了一下,但里面并没有啊,他他的内部里面呢,是并没有特别的多的渲染的,因为现在基本上都是要用衰的,那你各个厂家呢,如果你要基于他去做的话,你要自己写大量的衰的,然后形成你自己的推行引擎, 你才有可能啊和虚幻呢,用力体进行一个比较,那否则的话,显示质量上就就相相当于是现在和几十年前的差距了。那外部机油是基于浏览器的啊,现在也是大量的应用,但不管你用哪种,因为现在是 已经不是这种固定管线了,那所以大家都要写虚的,而虚的呢,都是一样的语法,所以有学习,我们主要 对于我们做游戏啊,或者工业部门里面做一些虚拟装配啊,类似的,那或者做这种仿真呢,都是会有很有帮助。好,我们看看,我们主要探讨资料 学习。二分区员呢,很多人都是基于这个网站,然而二分区啊,非常的通俗易懂,是很好的一个入门的网站。那这里面有两个链接,一个是英文版的,一个中文版的,这个网上也很好找啊, 那建议中文版英文版多看,因为并不是每个人的英文都那么好,而中文版呢,总是有一些翻译的不是很不是很贴切的地方。那第一遍看的时候,你可以先看点英文版,然后再看看中文版,然后再看英文版,这样的效果会更好一点。 关于 qqt 部分呢,很建议这本书啊,虽然现在已经是六点差已经出来了,但用的人其实还是很少的啊。现在是,顺便说一下,现在是二零一二二一年,可能你看这个视频的时候啊,已经是 二零二零年,或者更更晚一点时间,或者你现在呢,觉得这个视频是是不是已经很老了?为什么用的是五点九?那现在用的很多项目其实也 五点九啊,或者是五点一四啊,对吧?那所以并不老啊,现在我们是二零,可以说是二零二一年的主流的东西。 那新加加部分呢?如果你以前学过新加加 prom, 就是很全面,但是其实大家都说嘛,新加加 prom 不适合入门啊。如果你对新加加本身已经有了解了,作为查录补缺,你把新加加看一遍,把新加加 pro 看一遍,这是很好的, 但是你也可以对着视频去看,这样的话呢,一步到位也是不错的,里面的姿势很全面。那总之如果你 这三方面你都学过,那我们的课程对你来说就很简单了啊,主要是学习一下如何把他们集成到一起就好了。我们再来介绍一下我们使用的 一个框架,那我们使用的版本是欧分,只要三点三, qt 是五点九,那变异环境呢?就用它自带的这个命去 w 这个变异环境就好了。 总之怎么简单怎么来?用三点三是因为三点三和以三点二为分界线吧。啊?三点二以前的是这种传统模式,那我们现在是现代模式。 呃,传统模式呢,已经被丢弃了,那是一个固定管线,那我们现在呢,都是可编程管线。那具体这方面的介绍呢?我们会放在后面的课程里面。那我们为什么要这样去选? 比如说,那我们巨额网站里面,他推荐的是用巨额 w 啊,巨额 ad, 然后用 vc 啊这样编音器,比如说二零一五或以上版本。那如果以前我用过二零二零一零啊 这个版本,但二零一零版本有个问题啊,他对这个 c 加加十一的支持呢,就很差,而我们的原码里面呢,有一些这样的代码,那所以我经常会需要去把相关的代码稍微改一改啊,这样就有造成了不必要的麻烦。 所以如果用 vc 的话呢,还是要选用二零一零以上的版本,包括你在 qt 里面,你也可以选选择 vc 的变音器,那你一定要选择,比如二零一三以上的版本, 但是怎么简单怎么来,那么我们现在这个呢,只要装抽屉就好了,其实都不用装。虽然我们不用装,但我们要了解一下,为什么其他的课程里面都推荐要用 gls w 呢?我们之所以不用装,是因为抽屉已经帮我们封装好了一份功能。那 简单的来说, gfw 他就是创建一个我们前面写的支持啊,支持欧喷句, 欧喷气压的窗口,那在 qt 里面呢?我们都有小扣窗口加微句子走 qt, 他有这个支持我们主要的微决策,但是你的温度上也好,你的你也好,你的行程的这个窗口如何去进行绘制,如何去结合我们这个绘制的这个状态,我们的上下文,这都需要你自己去配置的啊,这个步骤很麻烦, 因为不同的操作系统他是不同的在这个层面上的操作,那我们要创建窗口,定义上下文,处理用户输入, 那这三方面的都自己做的话,那很麻烦啊。所以我们有一个库区啊, fw 他把操作系统层面的不同呢,他全给你做,那么你不管在哪个操作系统上, 你的流程就流程化了啊,就一致了啊,这就是巨要。 fww 主要就是创建知识和巨要的窗口,简单这样理解就好了。那巨要 ad 又是干什么呢?巨要 ad 的理解起来,他使用起来很方便, 根据银行代码就好了,但是理解起来呢,稍微复杂一点,你要知道这个显卡的工作,不同的显卡他就不同厂家生产的是吧?而欧喷区也要在 苹果里面,你各个显卡的这个驱动呢,是由苹果来做的,但是其他的这个平台里面,像我们用的 windows, 他各个驱动是由各个厂家去做的。而欧芬俱乐本身他不是一套 api, 他是一个规范,他是一个标准,你只要符合这个标准就可以了,那具体实际上呢?是可以不同的。那我们真正调用欧芬俱乐代码, 其实是我们去问你显卡要你的这个,我就是我让你显卡,你跑起来以后,你在内存里面你就会有很多个函数,是吧?我们都用 c 写的,都面向过程的,那我 要做一件事情的时候,我就让你去做啊,比如说让你对执行一条无根据要的函数,但是你这个我跑起来知道啊,对吧?就需要我们需要函数指针,要用显卡的函数,但是呢显卡的驱动具体的函数地址运行起来才知道,你运行起来以后我内存里面才会有我函数, 然后我去进行调用。你那我这么多条,我要一条一条的去找你,找你以后呢,我再用一个指针给你存起来,这个过程也是很繁琐的,那因为各个厂家也不同,这个过程也不是完全一致的,那怎么办呢?那我们需要 要有一个酷要 glad, 他会帮你做好这些事情,当你运行他的函数以后,那么你只需要用固定的代码就可以了啊。我们这个这部分可能理解起来会稍微费劲一点,那我们来举一个例子,那如果没有 qt 的封装或者没有 qt 的封装的话, 那也不光是比较低了,还有其他的选项,总之如果没有这一部分,我们要自己做,在温度的下面会是会是什么样的呢? 好,那么我们首先要定义一个,这是第一个类型,这个类型是什么呢?是一个指针,指向呢,是这样的一个函数,他的返回类型是 word, 他参数呢是有两个,一个是爱字,对吧?一个是这个指针, 然后他的名称就是我们的名称类型的名称叫 glgem fox, 好,那就是这个类型,我们 用这个类型声明了一个函数,那这个函数他指向的是我们内存里的一个显卡的函数,而这个显卡的函数我们通过 windows 的这条语句去获取了他的地址,那么功能就是居啊卷八分,总之这是一个欧盟居额的函数, 通过这个字不串我能找到他,我就知道你在内存里在什么位置。以后我要调用显卡的这个功能的时候呢,我只需要这样就好了,对吧? 那我就直接用你就好了,因为你本身就是一个函数函数指针啊,我用这个指针相当于是这是我的这个指针就绑定到了显卡里面的一个具体的具体的一个功能。 而且更深一点说呢,就是我们过去是当前上下文,而关于上下文的状态啊,这个我们放在后面再讲,因为 欧分区的本质上来说呢,就是一个大的状态机,我们所有操作呢,都是基于当前状态这个当前当前上下文,当前上下文的这个指的对于欧分区的理解还是比较重要的。好,我们先有一个大致的了解啊,就是 欧喷巨额,我们再简单来说一下,这样我们对于我们欧盟巨额的理解会好一点,欧鹏巨额是一个小而美的这样的东西,那我们为什么要用 qt? 我们为什么?如果不用 qt 的话,我们需要用什么?巨额 fwm? 用巨额 ad? 因为他是一个小而美的东西。没用我就不介绍了啊,关键看小, 他之所以小,他就抛弃了很多他不关心啊,他不关心也就说他不不不支持吧。 os 成名的东西就不同操作系统的区别,包括 这个显卡的,这显卡呢就是驱动,驱动层面呢,也就是具体的实施啊,你各个各个厂家是怎么去做的?所以他小而美他只是一个规范啊,他只是一个标准。具体软件这个就是软件呢? cosplv 对吧? 软件部分还是这个哈德维尔这部分的,不管软硬件的区别的适配的问题,他不管啊,这是都是交给你程序开发人员,就是我们交给程序员自己去处理的,对吧?啊?自己去处理的, 但都让这程序员去做,那是很繁琐的,你可以一点一点去做。如果你对温州市足够了解,那你知道怎么去把温州市窗口和我的呃欧根区啊,将一点一点的给串联起来 啊。我也知道你的显卡驱动有你你你的具体的这个,呃,如何去跟我这个操作系统进行联系啊?如何建立窗口?这些东西我都知道的话,我确实可以自己加一些。那以前呢?很早以前 用 windows 的 epi 去直接去做欧分区啊,这个也也是有的,但现在基本上已经没有人这样做了。那欧分区网站里面推荐的是这个。 那如果我们装 qt 的话, qt 是更接近于实战的,这样的酷越接近实战,在这一方面呢,他就越成熟啊,他 借助于 qt 的封装,那我们就不需要做这些配置了。虽然我们不需要做这配置,但是我们还是尽量的需要了解一下它里面的一些原理。

再重头说一下啊,就是我们现在要做的一件事,就是把这个点云的点呢,去绘制到这个投影,到这个二 d 图像上。投影二 d 图像上。我们去写了这么一个方法,就是这个图像 首先会首先去我们需要准备一张图像,这个图像是跟那个点云对对应的,然后要读取他这个从激光雷达到嗯到这个 刀向平面的一个啊,一个矩阵,这个矩阵是包括两步啊,然后其实他是包含两个,第一个是从嗯第一是从这个 tamara 到一米举,然后再是从这个 啊激光雷达到开门,就是我们从首先我们的这个三维的点呢,是在这个 相机坐标细弦这个点,他是三维点,然后他投影到这个图像平面上一个二 d 平面上这个点,这个坐标呢, 这个关系呢,是由这个凯马图一米局这个局战来描述的。然后就是通过这个激光雷达呢,然后我再将这个现在这个点呢,是在在在这个凯马这个世界坐标系下, 我的一个三维点,然后还需要将这三维点的坐标呢,转换到这个激光雷达下的坐标点,就是这么一个关系。那他们两个组成,他就是一个降级的内餐对吧? 这个就是相机的外插,相机的外插呢,不是由这个相机结构所决定 定的。然后它呢是我们是四 g 坐标系和这个橡底坐标系的一个坐标系的转换,也就是一个 r t 的转换, 对之前去说过 rt 的变换。那首先我们去读取一张图像,读取这张图像的我要获取获取图像的大小,这是图像 宽度和高度。这个好处就是说我们所有这个激光雷达的点呢,不一定都落在这个图像内,我们讲不落在图像内的点呢,就不对的绘制了,所以我们要知道这个图像的一个宽度和高度到图像的宽度,高度呢,我们就是获取, 为了激光获取点名 点一点,这个点呢是 s, y, z, 这就是 syj 坐标。这个 syj 坐标大家清楚这个 syj 的话, syj 是在激光雷达下的坐标系激光 雷达这个旗下的 syg 三维的点。 我们最终呢就是要把这个 s y, z 呢 头通过转换 转换成橡皮面,橡皮面 uv 是吧, 因为他其实也是有深度的,有这个作用。那首先我们去给他去做一个,呃呃,现在这个做游戏大家要知道的啊。而且这个维度要知道这个是一个喷乘以三维的,大写的嗯呢,都是点 点的数量。 然后我们要进行一次变换,首先我们要给它变成骑士坐标, 首先要转换为其次坐标, 把这个调小点,首先变换其次坐标。 所谓的骑士坐标呢,就是我们 s, y, z 这个三维点的欧式坐标。变成骑士坐标的话,嗯,比较简单,我们就给它添加一维,就是这个的变化为 s y 等于加一。那我们这样的话,我们这个点名的是一个 n 乘以三围的点对吧? n 乘以三围的点。我们通过插入,那么就是在每一个 s y vc vc 最后一回呢添加个一,添加一对吧。这就是啊这个表达。那这添加一呢在哪一个轴呢?在最后一个,在第二个轴。就是说我们现在是我们是这样的啊, x 这个 这是我轴的概念,就是我们是这个形式啊,看这是第一个,是第一行 对吧?这样 画的漂亮些。 这是 这是 column 方向的话, column, column 就是周一对吧,然后 rolm 就是周二, 然后在周一的方向去加加一个一。那么现在我们拿到的形式呢?就是在进行个转制 啊,转制之前呢,是一个 n 乘以四,转制之后呢,就是一个四 乘以 n 对吧?四乘以 n 就是 x 放在一起, x 是一维度, x 一 x 二 要调点,然后就是 y 一 y 二调点,然后依次类推 z 一, 这样就是这种形式。最后一维度的话,都是一要他每一个啊,变成这种维度了。然后这种维度之后我们做一次筛选,我们做一次筛选啊,就是我们要删除一些,就是 就删除哪些词呢?就是删除他的嗯,第一个 第一个也就是 x, x 小于零的值, x 小于零的值,我们算它第一个轴,就也就是在列端,这个就是嗯, 这是行,这是 s o v 零的,我们删除。比如说这个它小于零 的话, s 一小于零, s 一小于零, s 二小于零的话,那我们就把这一这二去删除,所以它这个这个是第一个替换之后还是这个形式,然后我们就乘以这个,现在是一个四乘以 n 的一个矩阵对吧?然后啊,四乘以 去成点,内击 内机一个 嗯,四乘以四的一个距离,然后就得到一个四嘿, 四乘以四的矩阵,去乘以一个四乘以 n 的矩阵呢,那么就是 得一个四寸圆的 四乘以 n 的矩阵。之后呢,再用它的第二维就是这个 z, 这个维度呢,分别去除以前两个就是这个数。我们继续删除 剔除。就是过滤掉 调 z 小于小于零的一些点,然后用分别用 x, z, x 除以 z, y 除以 z 等于 u v。 也就是将他的其次坐标啊变换为有了这个 uv 的时候,我们做一个剔除,就是超除,不再 将不在画面内 因为过滤掉。 然后你就说所谓的外点,整个都是在说这个。就是通过这个迷惑的问题,那最终我们就把它绘制出来, 会出来就有就这种形式。那么这就是那个点的点 在图像上绘制。

我们一起来见证一下计算机图形学是如何和物理知识完美的结合在一起的。利用这样的技术总和呢,我们就可以模拟出非常多的场景,比如下边这个卷曲的蜂蜜, 以及拥有着不同弹性吸收的果冻,还有下面这个在烘焙过程当中不断变化的蛋糕。我们甚至可以模拟肌肉的活动,包括它的压缩和拉伸。 当肌肉连接到骨骼的时候呢,我们可以移动骨骼产生动作,那你会发现肌肉也会相对应的产生收缩和拉伸。甚至呢,我们可以模拟肌肉的生长,这个效果呢,真的非常的惊人。那如果不结合物理知识, 计算机图形学的模拟会有什么问题吗?那我们一起来看一下。在这个场景里面呢,有三个怪兽,这三个怪兽的材质呢,比较特殊,你可以认为他是用一些稀泥制作的,所以呢,他并 那么牢固。现在呢,他已经开始慢慢的融化。计算机图形学对于融化过程的模拟呢,是非常准确的。但是你注意,融化之后的泥浆呢,其实是有一些问题的。那你有没有发现不同颜色的泥浆呢,会敬畏分明的分布在这个圆盘上面,并没有掺杂在一起,也没有任何融合的现象。 这个呢,和实际的情况呢,是不符的。那利用计算机图形学结合物理知识可以解决这样的问题吗?我们可以通过下面四个场景来给大家展示一下。第一个场景呢,我们可以叫做湿纸实验,你现在看到的是一个水球落在了一个吸水性非常好的纸上面, 对于水球和纸的相互碰撞的过程呢,之前的技术呢,已经模拟的非常好,但是如果应用了物理学的知识,不单单可以模拟碰撞的过程,而且呢可以非常好的模拟碰撞之后的 水和纸巾相互融合的过程。随着纸巾吸水越来越多,纸巾呢最终出现了破碎和断裂。第二个场景呢,是将一堆淀粉倒入在水杯当中,那我们都知道淀粉呢有比较强的锁水性, 所以他们进入水当中呢,并不会马上融化,而是在水面当中呢开始堆积。而在水下的部分呢,开始慢慢的融化,同时水的浓度呢也在不断的变大。 第三个场景呢,是饼干蘸水。我们呢可以将饼干放到水当中,你可以明显的看到在水的表面呢出现了波纹,这个呢是因为干燥的饼干在吸水。当我们把饼干从水当中拿出来,并试图呢将它们撕开, 断裂的饼干重新调回在水当中,我们也可以清晰的看到水面折射饼干的一个现象。第四个场景呢,我把它叫做落水狗, 可能你会觉得比较奇怪,因为在这个场景当中呢,你并没有看到狗。而我说的狗呢,是一个圆柱状的物体,你可以认为他是一个磨腻的狗,长了很多的毛。当我们将一瓢水倒在这个狗身上的时候呢,他开始摇晃身子,从而呢甩掉了大部分的水, 但是呢,仍然有一小部分呢,却没有在这个狗毛当中。这个跟真实的效果呢,也非常的像。所有的这些场景呢,都说明 结合了物理学的计算机图形学,不单单可以模拟相互接触的这个过程,而且呢,能模拟他们碰撞之后相互融合的一个现象。关注我,让知识变得更有意思。

ok, 各位同学大家好,咱们这节课开始来介绍线性代数当中的举证啊,那么举证呢,是一堆排序好的数字 啊,他有 m 行恩列。 ok, 我们看下边啊,这个就是一个三行一二三,这是三行恩列啊,就是三列一二三三列啊,三乘三的这么一个举针。 ok, 那么元素是指举证当中的每一个数字啊,称为一个元素啊,每一个都是一个元素,那么举证元素的表达方式是 aij 代表 di 行 dj 列。 ok, 比如说 a 一一,那么就是第一行第一列啊,好,那么我们假设啊,开头的这行呢,是零行的话,那么零一行,对吧?开头的是零列,那么这就是第一列,所以第一行第一列 就是指三这个元素啊,这是咱们在开头为零的时候啊,来定义的。 ok, 那么当 m 和 n 相等的时候,就如咱们现在的这个图上所示啊,那么本局阵被称为方阵, i'm the n 只为方正啊。好啦,那我们看一下单位举证写作 i n 啊,那么 i 的意思呢?就是 eye dentity 的意思啊, identitting 就是单位的啊。 ok, 那么我们看,首先第一必须是 n 乘 n 举证,也就是说啊,所有的单位证一定是一个方阵, 他是 n 行成 n 列,那么这个 n 呢?就是这个哎,下角的这个 n。 第二,主对角线上每个元素都是一。 ok, 那么我们称啊,从左上角到右下角的这条线为主对角线,那么主对角上上的元素啊,都为一。 ok, 那么除了主对角线元素以外,其他元素都必须是 零。 ok, 那么这个就是单位镇,那么接下来我们看举证的加法啊,举证的可加规则是这样的,两个举证可以相加的话呢,他们的行与列必须相同,你必须是三乘二的举证呢,只能加三乘二的举证, 那么你三乘二的矩阵不能和三乘三的矩阵相加,所以说他的行和列必须对应,那么相加的规则呢?就是对应的元素两两相加,放到相同的位置,比如说十二就是左边的零零啊位置,那么三十三就是右边的矩阵的零零位置,他俩相加十二加三十三放在最新矩阵的零零位置, ok, 那么这个就是举证的加法,非常的简单哈,那么接下来的话就是举证的乘法, ok, 那么我们可以看到啊,大 a 举证成了一个大 b 举证,那么他俩相乘的规则是什么样子呢?我们可以用一个例子来引入哈,比如说他得到的最终的 结果呢,是一个大 c 矩阵,那么大 c 矩阵里面每一个元素 cij, 那么如何去算到呢?我们可以这样子啊,比如说 c 二幺啊, c 二幺,也就是说新得到的这个矩阵,那么二号行,一号列上这样一个元素 c 二幺,那么他会怎么算出来呢?是用的 aa 矩阵里面的啊, a 矩阵里面的,那么 d 二行,二号行,你看零一二啊,这是二号行,对吧?乘以 b 矩阵里面的一号列, 那么壁纸针里面的一号列在哪里啊?一二啊,这零,这是一啊,所以说一号列是中间这个,那么二号 a 里面的二号行呢,就是最后这一行, ok, 那么二者呢?组成是吧?二者各自组成一个项链, a 二零, a 二幺, a 二二啊,最后这一行的元素把它竖着在一起,组成一个项链,然后呢, b 啊零幺, b 幺幺, b 二幺,这一列自己拿出来形成一个项链,二者做点成啊,二者做点成,所以说对应元素相乘且相加啊,就是这么一个道理啊。好了,那么我们看啊,其实也非常简单啊,那么 c 里面的话, c 零零怎么算呢?那就是 a 里面的第一行,第零行啊,乘以 b 里面的第零列啊,对应相乘起相加,然后 a 零幺的话呢,那么就是 a 里面的第零行,乘以 b 里面的第零第一列,对吧?就是 a 就是 c 零幺啊, c 零幺, ok, 那么我们再说啊,就是说这个通用的一个表达方法, cij 等于,那么 a 里面取 di 行,那么就是 ai 零 aii 一知道 ainb 里面取 dj 列啊, b 零 jej 一直到 nj, 那么各自组成一个列项量,然后进行点成即可啊,就这么简单。 那接下来的话呢,我们可以看一下乘法的规则啊,举正乘法的规则,那么第一个呢,是结合率啊, ab 的相乘结果乘以 c, 那么等于 a 乘以 bc 的相乘结果。 那么第二个呢,是分配率啊, a 乘以 b 加 c 这样一个矩阵的结果呢,等于 a 乘以 b 矩阵,加上 a 乘以 c 矩阵 啊,然后呢,如果我们把乘数啊,就乘的那个矩阵啊,放到右边去,也可以符合啊,这样的分配率,那么就是 a 乘以 c 矩阵,加上 b 乘以 c 矩阵啊,等于。那么什么呢? a 和 b 的和,再乘以 c 矩阵,但是呢啊,这个 a 和 b 的相乘啊, ab 矩阵的相乘不一定等于 ba 矩阵的相乘, 就他不一定符合交换率啊,那么原因很简单,对吧?如果是 m 乘 n, 那么,呃,这个,如果这个举证当前,是啊,就是这个 m 行乘以 n 列, 那么他就需要成一,他就需要与一个 n 行啊, n 行 w 列的这样一个举证相乘,对吧?因为呢,举证相乘的最关键的因素是要匹配,是吧? m 乘 n 必须和 n 乘 w 啊,他们中间这个第一个举证的列跟第二个举证的行啊,必须要相同, ok 啊,那么这样的话呢啊,我们倒过来就不一定能成功了,是吧?啊,倒过来不一定能成功了,那么关于矩阵啊,如果说两个是同结的,比如说都是啊这个 n 阶方阵的话, a 和 b 都是 n 阶方阵, 那么他能满足这样的交换吗?啊,也不一定啊,也不一定。我们后面呢,学习举证变换,空间变换的时候,我们可以更深刻的从这个啊,我们啊,几何意义上去理解这件事情。