如何用MATLAB生成三维模型并导入PPT

    大家好这里是由于隔壁小区阳了三个而被封控在家的陈同学。今天这篇鸽了两周多的文章会给出一种将MATLAB绘制的三维图像导入PPT的思路,就像下面这样。

------------------CSDN貌似插入不了gif,有需要可以关注我功种号“海研人”看-------------------------------

 

    MATLAB为我们提供了许多绘制三维图像的工具,如surf、mesh、plot3等。我们可以利用surf函数来绘制出类似下面这种看着好看但没卵用的三维地形图。

    这样的静态图放在自己的报告、课件等PPT里可以增加不少b格,要是它还能转起来岂不是更显得高大上?在MATLAB里通过手动操作或是编程然后录屏的方法来实现旋转动画当然是个办法,但这样得到的动画不怎么好看。

    众所周知PPT内置了许多优秀的动画效果,有没有办法可以把MATLAB绘制的三维图导入PPT呢?下面是我摸索出来的一种憨憨办法。

                               功种号“海研人”后台回复“3D”领取示例代码、数据与模型文件

第一步:绘制你想要的三维图像

    这里就用地形数据来举个例子,若需代码和数据请后台自取。

    画好之后其实就可以直接录屏来制作动画了,但要制作我上面三个例子那种动画,需要想办法将绘制的三维图像导入PPT再进行后续操作,问题是如何实现?

    Bill McDonald大佬在MathWorks上传了一个函数——surf2stl,该函数可以将用surf函数绘制的面数据转化为stl格式的3D模型,而该模型可以在Win10自带的一个神器——画图3D中打开(抱歉苹果没有)。

(来源:Bill McDonald (2022). surf2stl (https://www.mathworks.com/matlabcentral/fileexchange/4512-surf2stl), MATLAB Central File Exchange. 检索来源 2022/7/26.)

第二步:导出stl文件

    将裁剪好的高程数据导出为stl格式后,导入画图3D中,此时我们发现该模型是没有颜色的。但有一个笨办法可以为该模型“贴膜”。

第三步:制作贴纸

    绘制一张经纬度范围与三维地形图相同的平面地形图,并调整好colormap方式。

    裁剪掉周围的空白部分,此处最好像上面一样绘图时将绘图区域、坐标轴、刻度线等其他元素白化以易于裁剪(出现拉伸现象也没关系)。

第四步:为模型贴上贴纸

    在贴纸-自定义贴纸中添加刚刚裁剪好的平面地形图。

    拖动中上部的正方形按钮把三维模型尽量压扁(这样贴的过程中更容易对齐),拖动右侧旋转按钮至90°。

------------------CSDN貌似插入不了gif,有需要可以关注我功种号“海研人”看-------------------------------

    点击添加好的贴纸,拖动四角使贴纸与模型吻合。拖动好后,点击任意空白区域结束,若贴纸结果不满意,可ctrl+z重新贴。

------------------CSDN貌似插入不了gif,有需要可以关注我功种号“海研人”看-------------------------------

    拖动右侧旋转按钮,然后拖动中上部的正方形按钮将三维模型拉回原样。大功告成。

------------------CSDN貌似插入不了gif,有需要可以关注我功种号“海研人”看-------------------------------

第五步:导出着色好的模型到PPT

    点击左上侧菜单,保存-3D模型,此时保存的模型文件的格式为glb。

    保存好后,新建PPT,工具栏-插入-3D模型-此设备,找到你刚才保存的文件。

------------------CSDN貌似插入不了gif,有需要可以关注我功种号“海研人”看-------------------------------

    此时的3D模型就和png一样背景透明,且支持PPT自带的一系列动画,这东西拿来做汇报之类的PPT,简直高端、大气、上档次有木有!

------------------CSDN貌似插入不了gif,有需要可以关注我功种号“海研人”看-------------------------------

    当然,这过程真挺繁琐的,MATLAB画好图如果有办法直接导入PPT那只能说是我见识短浅,欢迎来后台打我的脸。

                               功种号“海研人”后台回复“3D”领取示例代码、数据与模型文件

猜你喜欢

转载自blog.csdn.net/m0_51143849/article/details/126009570