Processing Math: Done
To print higher-resolution math symbols, click the
Hi-Res Fonts for Printing button on the jsMath control panel.

jsMath
發新話題
打印

[3D 建模軟體] SketchUp

TOP

TOP

TOP

TOP

TOP

TOP

TOP

原問題https://math.pro/db/viewthread.php?tid=2154&page=3#pid14888



SketchUp檔下載


105.6.10補充
完成一件SketchUp作品需要以下幾個步驟
1.選題
評估該數學題目是否適合用SketchUp呈現,該採用靜態圖還是動態圖呢?

2.手畫分鏡圖


3.SketchUp畫圖


4.輸出bmp圖


5.bmp圖檔加上文字

文字A,B移動時的座標


6.製成GIF

TOP

原問題https://math.pro/db/viewthread.php?tid=924&page=1#pid1968


▲球面三角垛
SketchUp檔下載


▲功能表 視窗/元件選項可以調整每個邊球的個數


▲在SketchUp Pro版才能在功能表 視窗/元件屬性看到運作的機制

各屬性的公式如下
Copies=三角垛!Size*(三角垛!Size+1)*(三角垛!Size+2)/6-1
Discriminant=sqrt(9*(copy+1)*(copy+1)-1/27)
PositionZ=floor(-1+power(3*(copy+1)+Discriminant,0.33333)+power(3*(copy+1)-Discriminant,0.33333))
Remainder=copy-PositionZ*(PositionZ+1)*(PositionZ+2)/6
PositionX=floor((-1+sqrt(8*Remainder+1))/2)
PositionY=Remainder-PositionX*(PositionX+1)/2
X=(sqrt(3)*PositionX-2/sqrt(3)*PositionZ-1)*100
Y=(2*PositionY-PositionX-1)*100
Z=(2/3*sqrt(6)*(-1+三角垛!Size-PositionZ))*100


簡述背後的數學原理
1.要複製幾個球
Copies=三角垛!Size*(三角垛!Size+1)*(三角垛!Size+2)/6-1
每個球編號以SketchUp內建變數copy表示,編號從0到Copies。

三角垛個數公式為1+3+6+10++2n(n+1)=6n(n+1)(n+2)
https://zh.wikipedia.org/wiki/� ... 9.E8.A7.92.E5.9E.9B


2.編號第copy號的球在第幾層
Discriminant=sqrt(9*(copy+1)*(copy+1)-1/27)
PositionZ=floor(-1+power(3*(copy+1)+Discriminant,0.33333)+power(3*(copy+1)-Discriminant,0.33333))

從三角垛最上面的球編號下來
                             21
                   11        22 23
           5      12 13      24 25 26
     2    6 7    14 15 16    27 28 29 30
 1  3 4  8 9 10  17 18 19 20  31 32 33 34 35
第1層  第2層   第3層      第4層        第5層
編號從1到35個球,但SketchUp內建變數copy從0開始數,所以copy要+1才是對應的編號。

一元三次方程式6Z(Z+1)(Z+2)=copy+1
化簡後得到Z3+3Z+2Z6(copy+1)=0
利用一元三次方程式的公式解ax3+bx2+cx+d=0
判別式D=bc6a2b327a3d2a2+c3ab29a23 
x=b3a+3bc6a2b327a3d2a+D+3bc6a2b327a3d2aD 
https://zh.wikipedia.org/wiki/� ... B.E8.A7.A3.E6.B3.95
各項係數a=1b=3c=2d=6(copy+1)
判別式D=9(copy+1)2127 
Z=1+33(copy+1)+D+33(copy+1)D 
PositionZ=Z 再取高斯函數得到整數

要注意的是PositionZ還要+1才是所在的層數
例如:copy=15,編號第16號球,計算得到PositionZ=3,但球在第4層


3.餘數多少
Remainder=copy-PositionZ*(PositionZ+1)*(PositionZ+2)/6
例如:copy=15,編號第16號球,PositionZ=3,計算得到Remainder=5(從0開始數),在第6個位置


4.在第幾排的第幾個
PositionX=floor((-1+sqrt(8*Remainder+1))/2)
PositionY=Remainder-PositionX*(PositionX+1)/2

一元二次方程式2Z(Z+1)=Remainder
化簡後得到Z2+Z2Remainder=0
Z=21+8Remainder+1 
PositionX=Z 再取高斯函數得到整數

例如:copy=15,編號第16號球,Remainder=5,計算得到PositionX=2(從0開始數),在第3排
PositionY=Remainder2PositionX(PositionX+1)=2(從0開始數),左邊數過來第3個


5.轉換成球心坐標
X=(sqrt(3)*PositionX-2/sqrt(3)*PositionZ-1)*100
Y=(2*PositionY-PositionX-1)*100
Z=(2/3*sqrt(6)*(-1+三角垛!Size-PositionZ))*100

參考n=4各層球心坐標,就可以知道球心坐標公式
https://math.pro/db/attachment.p ... 97&t=1482545551


補充資料
SketchUp動態元件教學
http://help.sketchup.com/en/article/3000118

TOP

原問題http://math.pro/db/viewthread.php?tid=924&page=3#pid2969

其中物件移動用到plug-in,但Keyframe Animation 2.0版只適用SketchUp 2014之後的版本,而我仍在用SketchUp 8,故使用Keyframe Animation 1.3完成作品。
Keyframe Animation for SketchUp
http://regularpolygon.org/keyframe-animation/



SketchUp檔下載

TOP

發新話題