因為臨時需要做三菱鏡的模擬,利用Wolfram 語言有好用的SSSTriangle/SASTriangle…..得到所求的邊角,再轉換成柱子,我目前找到三種方法可以做.
tri = SSSTriangle[3, 4, 5]; h = 8;
方法一,四平八穩的寫一個
tri3D = tri /.
Triangle -> Identity /. {{x0_, y0_}, {x1_, y1_}, {x2_, y2_}} -> {
Triangle[{p0 = {x0, y0, 0}, p1 = {x1, y1, 0},
p2 = {x2, y2, 0}}],
Triangle[{{x0, y0, h}, {x1, y1, h}, {x2, y2, h}}],
Polygon[{{x0, y0, 0}, {x1, y1, 0}, {x1, y1, h}, {x0, y0, h}}],
Polygon[{{x1, y1, 0}, {x2, y2, 0}, {x2, y2, h}, {x1, y1, h}}],
Polygon[{{x2, y2, 0}, {x0, y0, 0}, {x0, y0, h}, {x2, y2, h}}]
};
Graphics3D[tri3D]
方法二.用Prism寫一個地球上最短的程式
supper3D = tri /. _[{{x0_, y0_}, {x1_, y1_}, {x2_, y2_}}] ->
Prism[{{x0, y0, 0}, {x1, y1, 0}, {x2, y2, 0}, {x0, y0, h}, {x1,
y1, h}, {x2, y2, h}}];
supper3D // Graphics3D
