教你輕鬆用MATLAB玩轉曲面

2020-12-13 騰訊網

科學作圖與仿真軟體MATLAB有相當強大的曲面繪圖能力,在手工作業時代,繪製這些圖是非常困難,甚至是不可能的事,但是在計算機和軟體技術日益精進的今天,幾行代碼就可以繪製出精確炫麗的科學用圖,相當簡單方便。

下面我們一起用Matlab繪製一些典型的曲面圖。

首先介紹一下,MATLAB中有兩個畫三維曲面圖的函數,分別是mesh和surf。其實大部分情況下,MATLAB編程都是「傻瓜式」編程,或按照書上的說法叫演算紙式編程,只要參考help文檔和一些相關例程就可以實現基本的繪圖,如果要繪製複雜圖形,那可能就需要費一些腦筋了。

比如我們拿拋物面做一個例子,實現一下。其它曲面可將其對應的曲面方程套用到繪製拋物面的代碼中實現。需要說明的是第三個曲面即球面,我們這裡是用一般方法畫的,MATLAB中有一個專門的函數sphere可以更簡單地畫出單位球面。

拋物面方程式

拋物面M代碼

拋物面:z=x^2+y^2

圓錐面:z=(x^2+y^2)^(1/2)

球面:x^2+y^2+z^2=1

懸鏈面:y=cosh(x)*cos(v) z=cosh(x)*sin(v)

旋轉環面:s=((R+r*cosu)cosv (R+r*cosu)sinv r*sinu)

Enneper曲面:r=(u-u^3/3+u*v^2 v-v^3/3+v*u^2 u^2-v^2)

標準錐面:z=(x^2+y^2)^(1/2)

標準柱面:方程式x^2+y^2=1

馬鞍面:z=x*y

單葉雙曲面:x^2/a^2+y^2/b^2-z^2/c^2=1

漸開線螺旋面:x=r*(cos(u+v)+u*sin(u+v))

y=r*(sin(u+v)-u*cos(u+v))

z=b*v

阿基米德螺旋面:x=-u*cos(a0)*cos(v)

y=-u*cos(a0)*sin(v)

z=u*sin(a0)+b*v

正螺面:x=v*cos(u)

y=v*sin(u)

z=b*u

你以為到這裡就結束了麼?

沒有!前面的都是小kiss

後面的圖會讓你覺得原來matlab離生活是如此之近...

在MATLAB和數學面前,如果我們遇到了上圖,此時該理性還是感性呢?

真的有這樣的函數嗎,網上有人這樣說:第一個常量用於控制杯罩;後面的用於控制突起;常數用於控制突起大小;次方正負控制凸凹。

這裡提供MATLAB代碼,供大家刷一下

沒有MATLAB的兄弟可以到Google繪圖測試下。什麼?不知道怎麼使用Google繪圖?哦,直接在Google搜索框中輸入函數表達式回車就行了,比如y=sin(x)。

也要有些人說二維的不算什麼,求3D效果圖!Okay,來了~

這樣的曲面,那matlab是怎麼實現的呢?

代碼執行,效果如下:

接下來提供罩杯型號,胸圍與胸下圍的差距:

AA 約7.5cm

A 約10cm

B 約12.5cm

C 約15cm

D 約17.5cm

E 約20cm

F 約22.5cm

G 約25cm

H 約27.5cm

I 約30cm

有了三維函數,學習有限元的朋友可以進行靜力和振動模態分析了,請各位發揮您的聰明才智測試並公布各杯參數。另外不妨共享下您的分析結果,比如什麼力度比較合適哦!

相關焦點

  • 大神帶你玩轉matlab圖像處理(五)
    長按加入matlab愛好者星球
  • 大神帶你玩轉matlab圖像處理(6)——Hough變換
    所以說有些知識說不定你那天就能夠使用到,秉持著「技多不壓身」的原則,本期跟隨過冷水了解一點點圖像處理方面的知識吧!之前公眾號作者:小豬豬有連載大神帶你玩轉matlab圖像處理推文。關於圖像處理的基礎知識過冷水就不再重複講解了,在其基礎上繼續深入學習數字圖像的轉變。
  • 值得收藏 | 如何用matlab做出酷炫的圖像
    本文承接在matlab入門基礎操作介紹的兩篇推文之後,在matlab入門(下)中介紹了部分繪圖相關的操作,本文首先做一點簡單回顧,
  • 幫你快速入門MATLAB
    要使用此函數,直接鍵入函數名及適當輸入引數值即可:y = fact(5)y = 120(當然,在執行fact之前,你必須先進入fact.m所在的目錄。)換句話說,在呼叫函數時,你只能經由輸入引數來控制函數的輸入,經由輸出引數來得到函數的輸出,但所有的暫時變數都會隨著函數的結束而消失,你並無法得到它們的值。小提示:有關階乘函數 前面(及後面)用到的階乘函數只是純粹用來說明MATLAB的函數觀念。若實際要計算一個正整數n的階乘(即n!)時,可直接寫成prod(1:n),或是直接呼叫gamma函數:gamma(n-1)。
  • Matlab基礎(四)
    之前說過,所有的符號表達式的定義都要從syms指令開始,比如你的表達式包含x,y兩個變量,那麼首先需要定義符號變量:syms x y緊接著寫出你的符號表達式。下面以2021年考研數學一第17道大題為例,演示符號表達式的威力。
  • 【愛國衛生月】如何玩轉衣櫥?教您輕鬆掌握衣櫥整理
    【愛國衛生月】如何玩轉衣櫥?教您輕鬆掌握衣櫥整理 2020-04-17 10:45 來源:澎湃新聞·澎湃號·政務
  • Matlab | 點雲基本操作(一)
    這裡,我選擇的是matlab2020b作為環境,較低版本可能某些函數不能用(畢竟點雲也是最近幾年發展起來的)    打開matlab,在命令行輸入我們可以看到matlab其實將poindcloud封裝成一個類,如果想了解所有matlab裡的點雲函數,閱讀源碼是最好的選擇,但如果僅僅使用一些功能就大可不必(源碼有1k多行.QAQ),實際上matlab底層使用
  • MATLAB中,你必須知道的!(二)
    三·matlab的繪圖 1·plot(x1,y1,option1,x2,y2,option2);畫二維曲線 2·plot3(x1,y1,z1,option1,x2,y2,z2,option2);畫三維 曲線 3·mesh(X,Y,Z,C);畫三維網格曲面X,Y,Z為矩陣 4·surf(X,Y,Z,C);畫三維陰影曲面,X,Y,Z為矩陣 5·[X,Y]=
  • Matlab基礎(三)
    符號表達式之前已經介紹過,利用符號表達式可以定義一個函數表達式,所有的符號表達式定義都從syms指令開始,比如你的表達式包含x,y兩個變量,那麼你要首先定義兩個符號變量:syms x y緊接著就可以寫出你的符號表達式
  • 這6個命令助你玩轉matlab自定義函數
    函數對於matlab的重要性這裡就不在贅述了(你了解matlab
  • DK新作教你輕鬆玩轉乘法
    但實際上教孩子用背誦方法學數學,是很愚蠢的方法。因為孩子只是機械記憶,卻不懂得靈活變通,所以遇到有點變化的題目時,靠背誦學數學的孩子就開始犯迷糊。比如孩子知道」7×8=56「,當你反過來問他」8×7=?」時,他可能就懵了。這就是典型的不理解,死記硬背「乘法口訣」的表現。
  • 教你怎麼安裝谷歌服務框架 輕鬆玩轉海外遊戲
    教你怎麼安裝谷歌服務框架 輕鬆玩轉海外遊戲 來源:www.18183.com作者:zhengslin時間:2017-06-12 今天,小編要和大家分享的就是如何在國行手機上安裝谷歌服務框架
  • 關於Matlab的那些事
    而後由於所學的專業是生命科學和環境相關的東西,用到matlab的機會不多,主要是一些功能用matlab實現起來不是很方便,而且手邊有現成的軟體可以做到,例如圖像分析,還有DNA序列分析都有現成軟體等。本以為不會與其有太多交集。我下決心學習matlab是在經歷幾件事情之後。
  • Matlab協調ROS程序: matlab 2015b + ros indigo
    雖然單個ros Node 也可以進行單步調試,但多節點,roslaunch時就抓瞎了,你是否也糾結ros是否也該將數據分析的可視化工具豐富下?  不要糾結,試試matlab 與ros 協調吧, 雖然也不是那麼完美, 但ros的平臺運行加上matlab強大的數據處理,可視化繪圖相結合,只要你充分合理的使用,相應一定能助你一臂之力。
  • Lightroom 入門|5天調色養成班,教你玩轉手機後期調色
    它也是我們在後期學習必學的工具之一,要怎麼利用這款強大的軟體輕鬆調出舒服耐看的色調呢?一根曲線,就可以擁有夢幻少女的粉色天空用曲線隨意調色,也能讓普通的照片秒變大片這樣「神仙般」的後期調色技能,很多人都特別羨慕,特別想要擁有!效果圖原圖這些圖片通過曲線就可以局部調光了!
  • 學習matlab的一點心得體會
    而後由於所學的專業是生命科學和環境相關的東西,用到matlab的機會不多,主要是一些功能用matlab實現起來不是很方便,而且手邊有現成的軟體可以做到,例如圖像分析,還有DNA序列分析都有現成軟體等。本以為不會與其有太多交集。我下決心學習matlab是在經歷幾件事情之後。
  • MATLAB簡單粗暴教程(十三)——MATLAB裡畫圖的一些基本函數
    值班間隙抓緊時間碼字,怕是再不抓緊時間,後面就要斷檔了…本文主要介紹matlab中常用常見的一些畫圖函數(不包括地圖工具箱和圖片處理神馬的)的最簡單用法。不敢說面面俱到,但是基本上涵蓋的也差不多了,大家經常提問的也都在這裡出現了。
  • 三招教你輕鬆玩轉中信銀行「薪金煲」
    今小編整理了三招,教你輕鬆玩轉「薪金煲」。  第一招:巧設留存餘額——夠用就行,多留無益  銀行卡留存保底金額最低為1000元,開通薪金煲可滿足ATM 取款、POS 消費、轉帳、自動關聯還信用卡、房貸車貸等日常需要,過高的保底金額將降低您帳戶資金的投資效率。
  • 觀點丨關於Matlab的那些事
    而後由於所學的專業是生命科學和環境相關的東西,用到matlab的機會不多,主要是一些功能用matlab實現起來不是很方便,而且手邊有現成的軟體可以做到,例如圖像分析,還有DNA序列分析都有現成軟體等。本以為不會與其有太多交集。我下決心學習matlab是在經歷幾件事情之後。
  • matlab初學者基本命令
    matlab初學者基本命令 > 「input」 輸入 「fprintf」 輸出 「disp」 展示 「plot」 畫圖 「plot3」 畫3D圖 「subplot」 「surf」 畫 曲面