如何用MATLAB生成三維模型并導(dǎo)入PPT

? ? 大家好這里是由于隔壁小區(qū)陽了三個而被封控在家的陳同學(xué)。今天這篇鴿了兩周多的文章會給出一種將MATLAB繪制的三維圖像導(dǎo)入PPT的思路,就像下面這樣。



? ? MATLAB為我們提供了許多繪制三維圖像的工具,如surf、mesh、plot3等。我們可以利用surf函數(shù)來繪制出類似下面這種看著好看但沒卵用的三維地形圖。


? ? 這樣的靜態(tài)圖放在自己的報告、課件等PPT里可以增加不少b格,要是它還能轉(zhuǎn)起來豈不是更顯得高大上?在MATLAB里通過手動操作或是編程然后錄屏的方法來實現(xiàn)旋轉(zhuǎn)動畫當(dāng)然是個辦法,但這樣得到的動畫不怎么好看。
? ? 眾所周知PPT內(nèi)置了許多優(yōu)秀的動畫效果,有沒有辦法可以把MATLAB繪制的三維圖導(dǎo)入PPT呢?下面是我摸索出來的一種憨憨辦法。
? ? ? ? ? ? ? ? ? 關(guān)注宮中號“海研人”后臺回復(fù)“3D”領(lǐng)取示例代碼、數(shù)據(jù)與模型文件
第一步:繪制你想要的三維圖像
? ? 這里就用地形數(shù)據(jù)來舉個例子,若需代碼和數(shù)據(jù)請后臺自取。

? ? 畫好之后其實就可以直接錄屏來制作動畫了,但要制作我上面三個例子那種動畫,需要想辦法將繪制的三維圖像導(dǎo)入PPT再進(jìn)行后續(xù)操作,問題是如何實現(xiàn)?
? ??Bill McDonald大佬在MathWorks上傳了一個函數(shù)——surf2stl,該函數(shù)可以將用surf函數(shù)繪制的面數(shù)據(jù)轉(zhuǎn)化為stl格式的3D模型,而該模型可以在Win10自帶的一個神器——畫圖3D中打開(抱歉蘋果沒有)。
(來源:Bill McDonald (2022).?surf2stl?(https://www.mathworks.com/matlabcentral/fileexchange/4512-surf2stl), MATLAB Central File Exchange. 檢索來源?2022/7/26.)
第二步:導(dǎo)出stl文件
? ? 將裁剪好的高程數(shù)據(jù)導(dǎo)出為stl格式后,導(dǎo)入畫圖3D中,此時我們發(fā)現(xiàn)該模型是沒有顏色的。但有一個笨辦法可以為該模型“貼膜”。

第三步:制作貼紙
? ? 繪制一張經(jīng)緯度范圍與三維地形圖相同的平面地形圖,并調(diào)整好colormap方式。

? ? 裁剪掉周圍的空白部分,此處最好像上面一樣繪圖時將繪圖區(qū)域、坐標(biāo)軸、刻度線等其他元素白化以易于裁剪(出現(xiàn)拉伸現(xiàn)象也沒關(guān)系)。

第四步:為模型貼上貼紙
? ? 在貼紙-自定義貼紙中添加剛剛裁剪好的平面地形圖。

? ? 拖動中上部的正方形按鈕把三維模型盡量壓扁(這樣貼的過程中更容易對齊),拖動右側(cè)旋轉(zhuǎn)按鈕至90°。

? ? 點擊添加好的貼紙,拖動四角使貼紙與模型吻合。拖動好后,點擊任意空白區(qū)域結(jié)束,若貼紙結(jié)果不滿意,可ctrl+z重新貼。

? ? 拖動右側(cè)旋轉(zhuǎn)按鈕,然后拖動中上部的正方形按鈕將三維模型拉回原樣。大功告成。

? ? 點擊左上側(cè)菜單,保存-3D模型,此時保存的模型文件的格式為glb。
? ? 保存好后,新建PPT,工具欄-插入-3D模型-此設(shè)備,找到你剛才保存的文件。
? ? 此時的3D模型就和png一樣背景透明,且支持PPT自帶的一系列動畫,這東西拿來做匯報之類的PPT,簡直高端、大氣、上檔次有木有!

? ? 稍微加工一下(PPT文件里有)。

? ? 當(dāng)然,這過程真挺繁瑣的,MATLAB畫好圖如果有辦法直接導(dǎo)入PPT那只能說是我見識短淺,歡迎來后臺打我的臉。
? ? ? ? ? ? ? ? ? ? ? ? ?宮中號“海研人”后臺回復(fù)“3D”領(lǐng)取示例代碼、數(shù)據(jù)與模型文件