網站http://www.sugakuart.com/
會找到這個連結,其實是翻「青少年のための科学の祭典」,看到他們有資料
立体グラフ 「数楽アート」を作ろう
裡頭還有附上型紙,印下來剪一剪,就可以跟著作一個數學函數立體紙模型。
跟著作是一回事,我更想要弄懂怎麼製作,這樣我就可以任意產生各種函數來作模型了。
Google搜索引擎就有圖表繪製的功能,像是搜尋列直接輸入z=x^2-y^2,就可以看到這樣鞍型圖
或是輸入z=x*y*0.5,也有不同的鞍型圖
鞍型圖非常有意思,以為是谷底,其實是山頂,以為是山頂,其實還只是谷底,處在什麼位置,端看你用什麼角度去看。
所以我第一個嘗試就用鞍型圖來作吧,第一步是產出鞍型圖的曲面數據。這步驟我用Gnu octave來製作。
命令很簡單,兩行就可以產出z=0.5xy的數據,然後把數據存在0.5xy.dat這個檔案裡
d = ((-10:0.2:10)' * (-10:0.2:10))*0.5 ;
save("0.5xy.dat", "d");
接下來要做出立體的模型,我使用OpenSCAD來作,這是一個用寫程式碼來作立體建模的軟體。
程式也很簡單,就三行搞定
translate([0,0,70]) union(){
surface(file = "0.5xy.dat",center = false, convexity = 10);
translate([0,0,-70])cube([100,100,20]);
}
或是輸入z=x*y*0.5,也有不同的鞍型圖
鞍型圖非常有意思,以為是谷底,其實是山頂,以為是山頂,其實還只是谷底,處在什麼位置,端看你用什麼角度去看。
所以我第一個嘗試就用鞍型圖來作吧,第一步是產出鞍型圖的曲面數據。這步驟我用Gnu octave來製作。
命令很簡單,兩行就可以產出z=0.5xy的數據,然後把數據存在0.5xy.dat這個檔案裡
d = ((-10:0.2:10)' * (-10:0.2:10))*0.5 ;
save("0.5xy.dat", "d");
接下來要做出立體的模型,我使用OpenSCAD來作,這是一個用寫程式碼來作立體建模的軟體。
程式也很簡單,就三行搞定
translate([0,0,70]) union(){
surface(file = "0.5xy.dat",center = false, convexity = 10);
translate([0,0,-70])cube([100,100,20]);
}
做出模型之後,存成stl檔,接下來就可以作應用了。
STL檔案我存在thingiverse上頭,還包括幾個不同的數學函數模型。
z=axy 鞍型
z=-(x2+y2) 是個拋物面
z=1-(x2+y2)^0.5 這個像是個角錐
z=acos(x2+y2) 這個像是水滴產生的波紋
z=x2-y2 另外一種鞍型
然後怎麼做出這樣的模型呢?需要用到123D make,在Autodesk的網站上可以免費下載。
123D make操作都很簡單,比較要注意的是怎麼設定「厚度」,由於我作的成品,可能用紙來作,也可能用壓克力雷切製作,所以我會作兩個不同的設定值,改變他們的厚度。
紙張部份就設定thickness是0.001,壓克力我預設會用2mm厚的,所以我就設定thickness是0.021。
製作產出的檔案,除了stl檔案之外,都在Google硬碟裡。
stl檔則都是放在thingiverse上頭。