ラベル 多面体描画道楽 の投稿を表示しています。 すべての投稿を表示
ラベル 多面体描画道楽 の投稿を表示しています。 すべての投稿を表示

2022年9月8日木曜日

切頭八面体

久し振りに切頭八面体について書きたい. TAOCPにおやという記述があった.

a: 切頭八面体の基本的な置き方は, (htmlでは式が書き難いから言葉で述べると) 0,1,2,3の, 同じもののない3つ組である.

b: 体心立方格子のVolonoi領域である.

bはなるほどそうらしいと思うが, そしてそういう言い方もあるのかと思うが, aはすぐには分らなかった. その組を作ってみると,
((0 1 2) (0 1 3) (0 2 1) (0 2 3) (0 3 1) (0 3 2) 
(1 0 2) (1 0 3) (1 2 0) (1 2 3) (1 3 0) (1 3 2) 
(2 0 1) (2 0 3) (2 1 0) (2 1 3) (2 3 0) (2 3 1) 
(3 0 1) (3 0 2) (3 1 0) (3 1 2) (3 2 0) (3 2 1))
になり, たしかに24個あって, 切頭八面体の頂点の数と同じである.

それぞれの3つ組を(x, y, z)と思い, 高さ(z) 別に絵を描くと, 下の図の上段のようになる. z=0, つまり底の面に点が6個あるから, これは六角形を床に置いた図らしいと分る. 六角形にしてはいびつだが, それは直交 座標のためらしいから, x軸とy軸の角度を60度にしてもう一度描いたのが中段の図である.

なるほど六角形が現れる.

そこでx軸とz軸, y軸とz軸の角度も60度にしたグラフ用紙を作って, 上に点を 書き込むことにした. つまり, x軸y軸z軸は正四面体の3本の辺に沿っている. それが上の赤緑青の線である. 赤はz=0の平面座標で, その三角形の中心を起点とした緑のz=1の平面座標が出来, その三角形の中心を起点とした青の z=2の平面座標が出来る. 同様にしてz=3の座標が出来るが, それはz=0のと一致する.

黒線で描いたのが六角形を底にした切頭八面体である.

これを確認するため, 別の切頭八面体の絵もある. 左上Aは, 私が通常に描く切頭八面体 である. その中心を通る直交するx軸(赤), y軸(緑), z軸(青)も描いてある.

私の描画プログラムは, 頂点の座標を座標軸に平行移動したり, 座標軸に沿って回転 したり出来る. BはAの図を, z軸について45度回転したものだ. Cはそれを右下の 5,12の辺が, xyz軸の中心に来るように移動したもの. Dはそれを右下の六角形が 底に来るように, x軸について回転したものである. 最後のEは, 座標軸の中心に 切頭八面体の中心が来るように移動した.

この時, 各頂点の直交座標での位置は次の通りである. (左は頂点の番号順, 右は高さ別)
     0 (-2.121 0.408 -0.577)      9 (-1.414 0.0 1.732)	
     1 (-1.414 0.0 -1.732)	  11 (-0.707 1.225 1.732)	
     2 (-1.414 1.633 -0.577)	  16 (-0.707 -1.225 1.732)	
     3 (-0.707 1.225 -1.732)	  18 (0.707 1.225 1.732)	
     4 (-2.121 -0.408 0.577)	  20 (0.707 -1.225 1.732)	
     5 (-0.707 -1.225 -1.732)	  22 (1.414 0.0 1.732)	
     6 (-0.707 2.041 0.577)	  1 (-1.414 0.0 -1.732)	
     7 (0.707 1.225 -1.732)	  3 (-0.707 1.225 -1.732)	
     8 (-1.414 -1.633 0.577)	  5 (-0.707 -1.225 -1.732)	
     9 (-1.414 0.0 1.732)	  7 (0.707 1.225 -1.732)	
     10 (-0.707 -2.041 -0.577)	  12 (0.707 -1.225 -1.732)	
     11 (-0.707 1.225 1.732)	  14 (1.414 0.0 -1.732)	
     12 (0.707 -1.225 -1.732)	  4 (-2.121 -0.408 0.577)	
     13 (0.707 2.041 0.577)	  6 (-0.707 2.041 0.577)	
     14 (1.414 0.0 -1.732)	  8 (-1.414 -1.633 0.577)	
     15 (1.414 1.633 -0.577)	  13 (0.707 2.041 0.577)	
     16 (-0.707 -1.225 1.732)	  21 (1.414 -1.633 0.577)	
     17 (0.707 -2.041 -0.577)	  23 (2.121 -0.408 0.577)	
     18 (0.707 1.225 1.732)	  0 (-2.121 0.408 -0.577)	
     19 (2.121 0.408 -0.577)	  2 (-1.414 1.633 -0.577)	
     20 (0.707 -1.225 1.732)	  10 (-0.707 -2.041 -0.577)	
     21 (1.414 -1.633 0.577)	  15 (1.414 1.633 -0.577)	
     22 (1.414 0.0 1.732)	  17 (0.707 -2.041 -0.577)	
     23 (2.121 -0.408 0.577))	  19 (2.121 0.408 -0.577)    
各頂点の直交座標(x,y,z)を, 斜方座標(a,b,c)に変換するには, 例えば
(define (tcood x y z)
(let* ((c (/ (* z 3) (sqrt 6)))
       (b (/ (* (- y (/ (* c (sqrt 3)) 6)) 2) (sqrt 3)))
       (a (- x (/ b 2) (/ c 2))))
(list a b c)))
しかしこれで変換すると0.707や2.121が出るので, 正規化すると, 先程の24個の 直交座標は
((-3 1 -1) (-1 1 -3) (-3 3 -1) (-1 3 -3) (-3 -1 1) (1 -1 -3)
 (-3 3 1) (1 3 -3) (-1 -3 1) (-3 -1 3) (1 -3 -1) (-3 1 3)
 (3 -1 -3) (-1 3 1) (3 1 -3) (1 3 -1) (-1 -3 3) (3 -3 -1)
 (-1 1 3) (3 1 -1) (1 -3 3) (3 -3 1) (1 -1 3) (3 -1 1))
なるほど, 最初に書いた座標は0,1,2,3であったが, 今回のは. 切頭八面体の中心に座標の 中心を置いたので, -3,-1,1,3で構成されていた.

2012年10月14日日曜日

多面体描画道楽

このタイトルのブログを最後にアップロードしたのは今年の9月9日で, 大二十面体の6枚の面に色づけした.

その頃から試みたかったのは, ある方向からの光線で陰影をつけることであった.

その前に見える面のすべてに色づけした図を描いてみるとこのようになった. 色の選び方には自信がないが.



これが出来たので, いよいよ陰影の図に取りかかる. 光の来る方向と各面の法線とのスカラー積を計算し, +1は光線に向いているから白に, -1は黒にすればよいのではと考えて次のような図が出来た.



しかし灰色が似ていてやはり面の識別は難しいというのが感想である. 枠となる正二十面体の頂点0,2,3のところだけ取り出したのがこの図である. 緑の正五角形の中が凹み, そこに5/2角錐が立っているのが見てとれればよいが, これもなかなか難しい.



何回か前のブログに書いたように, やはり難解な星形多面体である.

2012年9月9日日曜日

多面体描画道楽

このタイトルの前回のブログ(2012年7月21日), 大二十面体の絵はもっともらしいと思ったが, 実は違っていた. 最後の方の図の三角形ABCの面は, 芯だと考えた正十二面体の面であって, 星形の面が20あるのはいいのだが, 十二面体の12は余計であった. というより, その図でBはもっと深い位置にあるべきであった.

間違いに気づいたのは, 面を色分けにしようとして, 面の数が多すぎると分かったからだが, 正しいB点の位置の計算に手間取っていた. その計算もやっと計算が終わったら, 次は隠面消去のアルゴリズムに手間取った. 秋風も吹き始めた今頃になって, どうやら正しい図を描くことが出来た.

まず前回の失敗の図だ. 頂点0の正5/2角錐が立つ正5角形は存在しない.



それに対して, 正しい図は次のとおり.



20枚の面のうち, 頂点0に関わって, しかも見える6枚の面に色をつけたのが次の図だ.



先ほどの正5/2角錐は, 底面が平面ではなくなったが, 一応角錐ということにすると, その底は逆に窪んだ5角錐になり, 見ている範囲でも3色別々の3枚の平面で出来ていることが分かる.

結構面倒な図形であった.

2012年7月21日土曜日

多面体描画道楽

星形正多面体描画はまだ「大二十面体」が残っていた. (「大二十面体」からは子供の頃読んだ「怪人二十面相」を連想してしまう. でも内容はもう覚えていない.)

一松先生に記述はこうだ「正二十面体の各面に対し, 各辺に隣る三角形の頂点3個を結ぶ正三角形20個を面にとります.」 相変わらず簡潔だ. 面は20, 辺は3×20÷2=30, 頂点は3×20÷5=12. 後に判明するように, 頂点で面は星形(5/2角形)で交わるから, Schläfliの記号は{3,5/2}. いやはや記述とは反対に大変な難物であった.

前回のブログにあった枠になる正二十面体の図をもう一度示すと. つまり頂点0,1,2の面に対しては, それに隣る三角形の頂点5,10,3の三角形で, こういう面だけで出来る立体はそう容易には想像出来ない. 数学者の想像力にはいつもながら脱帽だ. かなりの日時をかけ, 苦心惨憺, 紆余曲折, といいつつも十分楽しんだ末, 出来た図はこれだ. 自画自賛すれば実にもっともらしい. たしかに頂点5,10,3を結ぶ三角形は見える. 下は左が正二十面体の面, 右がそれに対応する大きい三角形である.
[2 1 0]   [10 5 3]
[3 2 0]   [11 1 4]
[4 3 0]   [7 2 5]
[5 4 0]   [8 3 1]
[1 5 0]   [9 4 2]
[2 10 1]  [11 9 0]
[11 10 2] [6 1 3]
[3 11 2]  [7 10 0]
[7 11 3]  [6 2 4]
[4 7 3]   [8 11 0]
[8 7 4]   [6 3 5]
[5 8 4]   [9 7 0]
[9 8 5]   [6 4 1]
[1 9 5]   [10 8 0]
[10 9 1]  [6 5 2]
[7 8 6]   [4 9 11]
[8 9 6]   [5 10 7]
[9 10 6]  [1 11 8]
[10 11 6] [2 7 9]
[11 7 6]  [3 8 10]
ためつすがめつ眺めているうちに, これは下の図のオレンジ色の正五角形の上に, 背の高い星形が乗っている; その正五角形が芯になる正十二面体であるらしいと分かって来た. しかし頂点3に関わる部分だけで三角形は15もある. 都合180個の三角形の座標を計算しなければならぬ. 当然その計算の部分はSchemeで別にやることにした.

星形の底面の凸の点は, 例えばAは頂点3と5の線上にあるから, 後で計算出来るとして, 凹の点Bはどうするか. 頂点3からの三角形の辺は, 8,5,1,10,6に向かい, それらの頂点は8,1,6,5,10の順に星形(5/2角形)につながっている.

ABの線は頂点5, 10の線と平行であり, BCの線は頂点8, 1の線と平行なので, その交点の座標を知る必要がある. このような交点を5個計算し, 3と5の位置を内分してAが得られたように, 3と交点を同じ比で内分するとBが得られるわけだ. この比は1:(1+√5)/2なので, 黄金分割であった.

180個のすべての三角形の頂点の座標が得られてから, それらの各点の視線方向の距離を計算し, 遠い物から順に描くと最初の図が出来た.

一応目的は達成したが, こういう水の溜まる立体を白地で示すと, どこが凸でどこが凹かが分かりにくい. 次は面を濃淡に塗り分けてみたい.

2012年7月10日火曜日

多面体描画道楽

星形正多面体の次の対象は, 「大十二面体」である. 前回は「星形大十二面体」であった. 「大十二面体」と「星形大十二面体」があって, 相並んでいるのは, ノーメンクレイチャとしてはいかがかと思うが, 一松先生の本がそうなので仕方がない. 「星形大十二面体」と「なんとか大十二面体」といいたいところだ. その(星形でない)大十二面体の, 「正多面体を解く」の記述はこうだ. 「正二十面体の頂点に隣る5個の頂点のなす正五角形をそのまま面に採る.」 この上なく簡潔至極の表現だ. 上が正二十面体である. その頂点0に隣る5個の頂点のなす正五角形は, 下の図にオレンジ色で示す面1,2,3,4,5になる. これを「0に隣る面」ということにしよう. (その辺には小さく0と付記した.) さらに頂点23に隣る頂点の面を作ると のように2に隣る面0,1,10,11,3と, 3に隣る面0,2,11,7,4が得られる, ところで0に隣る面と2に隣る面は13で交わるからその交線は1から3へ引いた線である. 同様に0に隣る面と3に隣る面は24で交わるからその交線は2から4へ引いた線である. さらに2に隣る面と3に隣る面の交線は0から11へ至る. 従ってもとの正二十面体の面の1つの三角形0,2,3の中に3つの交線が現れる. その交点を下の図のようにPとする. 同様に三角形0,3,4の中に3つの交線が現れる. その交点を下の図のようにQとする. この2点の座標が決まると, 大十二面体を描くことが出来る. それがこれだ. この正多面体はPQの所が凹んでいて, 水が溜まる形である. 右下の頂点3を中心とした昔の陸軍の徽章のような星形がみられる. 3の星の1つの枝は0の星の枝でもあるから, この枝は2等辺三角形である. ところでPQの座標の計算法だが, 正二十面体をx軸方向から見た図を描くと になる. この図で1, 10短い方の辺の長さを2とすると, 図の 0, 6の長さは1+√5. Oから0までは(1+√5)/2. 0, 3も1なので, これらからP, Qのz座標(3+√5)/2, (√5-1)/2が得られる. これらを解くには (a+b√5)×(c+d√5)のような計算が頻発するから, この積がe+f√5であるとして, a,b,c,dからeとfを求めるプログラム
(define (mult a b c d)
 (list (+ (* a c) (* 5 b d)) (+ (* a d) (* b c))))
を用意すると仕事がはかどった.

2012年7月8日日曜日

多面体描画道楽

一松先生の「正多面体を解く」の星形正多面体に最初に登場するのは, 星形大十二面体である. その記述はこうだ. 「正十二面体の各面の頂点に隣る5個の頂点は同一平面上にあって, 大きな正五角形をなします. これを星形正五角形の形に結びますと, 全体として星形正五角形すなわち正5/2角形が, 各頂点に3個ずつ会する星形正多面体ができます.」

「隣り」を動詞に使うのは数学者だけだが, 意味は十分通じる. そこで描いてみると



正5/2角形を1個描いただけだとこうだが, 12個全部を描くと何も分からない.



この図をプリンタで出力し, 鉛筆であちこちなぞっていると, どうも正五角形の中央を凹ませ, 正十二面体の各頂点を頂点とする三角錐があるように思えてきた.

その凹みの座標を調べるため, 前回のようにzx断面を考えると,  0, 1, 2, 3, 4の面の凹みは3から8の線と4から10の線の交点にあるようだ.



この図で凹みの中心はP, そのz座標は(√5-1)/2である.

ここまで分かると, 後は隠面消去のために面の前後関係の調整だけで, 下のような図が出来た.



この星形正多面体の枠と芯は次のようだ. 外側のオレンジ色の正十二面体が枠で, 内側の紫の正二十面体が芯である. その芯の20個の各面の上に正三角錐が乗っている.

2012年7月7日土曜日

多面体描画道楽

オフィスの近くの神保町. ある日の昼に, 理系の本の多い明倫館書店の前を通り,  そういえば先日購入したのは何だっけ?

その1ヶ月ほど前に, 一松信先生の「正多面体を解く」を買ったのだが紙袋にいれたままオフィスに忘れていた.

この書の最後の方に星形正多面体の話題があった. そういえば以前正多面体や準正多面体をいろいろ描いたが, 星形は手つかずであったので早速その部分を読む.  申し訳ないが一松先生の本の図はどうもいまいち分かりにくいのである. やはりこの際, 自分で描いてみるか.



一松先生の受け売りだが, 2次元の星形正多角形(上の図の左下)の書き方には2通りある.  右上のように「芯」の正多角形の各辺を延長すると左下が出来る. あるいは右下の「枠」となる正多角形の頂点をいくつか置きに結ぶ.

星形正多角形は, 普通の正多角形とは違って見えるが, すべての辺の長さが等しく, すべての頂点の角度も等しいから, やはり正多角形である. この図の星形正多角形は正5/2角形というらしい.

立体の手始めは星形小十二面体である. これは正十二面体を芯とし, その各面を延長する.

2010年6月1日の私のブログの



正十二面体を芯とし, そのプログラムの修正て始めよう.

この正十二面体の正面左上を向いている面(頂点が0, 1, 2, 3, 4の面)に隣接する5枚の面を延長すると点20で合わさった五角錐になり



が出来る. この操作を他の11枚の面についても行うと



が描ける.

五角錐の頂点の座標は下の図のように得られる.



最初の正十二面体で立体を貫くの赤, 緑, 青はx軸, y軸, z軸である. 上の図は立体のzx面の断面である. Aは01の, Bは313の, Cは817の中点で, Oは立体の中心だ.

20は辺3, 13の延長線上にあり,  立体の辺(稜)の長さの半分を1とすると, OA=OB=OC=(3+√5)/2からx座標が2+√5である.

さて, 星形小十二面体を眺めると, 面0, 1, 2, 3, 4を延長した面28, 21, 29, 26, 24は正5/2角形である. こういう形が12枚あるわけだ. 芯の正十二面体の12の面に五角錐を載せたから, 頂点も12ある. 辺は各頂点から5本出ているが, 相棒の頂点と共有だから都合30本になる.

例のEulerの公式は 面+頂点=辺+2だが, 12+12≠30+2で公式が成り立たないという. 「正多面体を解く」にはちゃんと説明があるが, 受け売りになるので省略.

さてもう1回似たような図を示す.



このオレンジ色の破線は星形正多面体の枠の正二十面体である. 平面だと, 頂点をいくつか置きに辿るといえるが, 立体の場合はどういえばいいだろうか.

一方, 星形小十二面体の隠面消去だが, 五角錐を構成する三角形を遠方にある物から並べ, 各三角形を描画する際, まず内側を白で塗りつぶしてから黒で輪郭を描いた.

始めの正十二面体では, 各面の法線方向を計算し, それと視線の角度を計算して面の見える/見えぬを決めている.

2011年8月28日日曜日

多面体描画道楽

Archimedes多面体13種のうち, rhomb(斜方とか菱形)という形容詞のつくものが2つある. 斜方立方八面体と斜方二十十二面体である. 何ゆえに斜方といわれるのか.





これらの図に示すように, この2種類の多面体には, それぞれ3種類の面がある.

斜方立方八面体では, 青は元々の立方体の面, 緑は正八面体の面である. 斜方二十十二面体では, 青は元々の正十二面体の面, 緑は正二十面体の面である.

では, それぞれの赤の面はなにか.

赤の面を延長して, 緑の面の上方での交点を決め, 赤の正方形に外接する菱形を考えることが出来る. 赤は元々そういう面の多面体の面である.

この多面体がどちらも菱形になるので, 斜方といわれる所以である. つまり, 斜方(赤)立方(青)八(緑)面体, 斜方(赤)二十(緑)十二(青)面体という命名であったわけだ.

ではその斜方多面体を描いてみよう.


上は斜方立方八面体である. x, y, zの対称軸も描いてある. z軸(青)のまわりに少し回転し, y軸(緑)のまわりにも僅かに回転したようになっている.


そのz軸, y軸まわりの回転をやめ, x軸方向から眺めたのが, この上の図だ. そこで, 最初の赤い正方形を含む面を考えてみると, この図の赤線で示す菱形が得られる. その座標が分かれば, 次の図が描けるわけだ.



これは, 対角線の比が1:√2の菱形が12個で構成されているので, 斜方十二面体(rhombic dodecahedron)という.


斜方二十十二面体の方は, 面が多いせいか, 多少手ごわい.



これが元の斜方二十十二面体で, 上と同様にz軸, y軸について回転してある.



回転角を0とし, x方向から眺めると, このように見えるはずだ. 赤線はそこにかぶせた菱形である. この方は, 菱形30枚で構成され, 斜方三十面体(triacontahedron)という.



菱形の対角線の比は1:φ(黄金比)である.

同一の菱形だけで出来る多面体はこの2つだけらしい. またKeplerはこの2つの多面体のあることを知っていたといわれる.

2011年8月11日木曜日

多面体描画道楽

立方体は正方形6枚で出来ている. 正方形は1つの内角が90度. 従って正方形全体で内角の和は360度. それがF=6枚あるから, 2160度, つまり12π(パイ)になる.



一方頂点の数Vは8. それに対して内角の総和は(2V-4)π=12πという関係をEulerは知っていたらしい.

別の例. 正十二面体は正五角形がF=12枚. 頂点はHamilton世界巡礼でお馴染のV=20. 正五角形の内角は108度. 従って内角の総和は, 108*5*12=6480. 6480/180=36(π). 2V-4も36だ.

さらに2種類の面のある, 切頭二十面体(サッカーボール)は, 正五角形が12, 正六角形が20, 頂点は60. 内角の総和は, 108*5*12+120*6*20=20880, 20880/180=116. 2*60-4=116となる.

こう考えてみた.

Eulerの式に, 面の数F, 辺の数E, 頂点の数Vとすると, F+V=E+2という有名なのがある.

いま, ある多面体がn1角形, n2角形,...,nF角形のFの面で出来ていたとする.

n角形の内角の和は(n-2)πであったから, 計算したい内角の総和Sは
S=(n1-2)π+(n2-2)π+...+(nF-2)π=(n1+n2+...+nF)π-2Fπ.

一方, この多面体の辺の数を計算すると, 各多角形の辺は2回ずつ寄与しているから, E=(n1+n2+...+nF)/2.

従って, n1+n2+...+nF=2E. これをSの式に入れると,

S=2Eπ-2Fπ. Eulerの式から, E-F=V-2.

ゆえにS=2(V-2)π.

なるほど.

また, Descartesの定理というのもある.



左下は, 正四面体の頂点は, 正三角形が3個集まっていて, その内角の和が, 360度より足りない度合い(deficiency)が180度であることを示す. 正四面体には頂点が4個あるから,deficiencyの総和は720度. 4πである.

これを他の正多面体でやって見ると, やはり, どれも720度になるのである.

サッカーボールではどうか.

この図のように, 120度, 120度, 108度に挟まれた角は12度. それが60個あるから, やはり720度である.




Eulerの方は, サッカーボールの図でいうと, 348度の方を総和している. 60倍すれば先ほどの20880度になる.

V個のradianで表わしたdeficiencyをd1, d2,...,dVとする.

Eulerの方の内角の和は, (2π-d1)+(2π-d2)+...(2π-dV)
=2πV-(d1+d2+...+dV) と足す.

これが2(V-2)πだったから, d1+d2+...+dV=2πV-2(V-2)π=4π.

これもなるほどであった.

正多面体では, 面の数の順に正四面体, 立方体(正六面体), 正八面体, 正十二面体, 正二十面体と並べる. 正四面体の頂点は尖っているから, あとに行くほど丸くなるかと思うのは誤解であって, 正八面体も正二十面体も結構尖っている. それは正八面体は立方体より, 正二十面体は正十二面体よりも, deficiencyが大きく, 頂点の数が少ないためであろう.

サッカーボールがよく転がるのは, deficiencyが12度で, V=60もあるからである.

2011年7月9日土曜日

多面体描画道楽

Archimedesに興味をもって, その多面体を描いてきた. 今回はその総括である. この多面体は13種ある. まとめると以下の通り.

ます, 英語名と日本語名を並べる. 次の行は(pi npi)のリストで, 正pi角形の面がnpi枚あることを示す. 多面体屋なら, この情報から稜の数と頂点の数は計算できるので, その情報をここには記載しない. その次は各頂点について, 何角形が集まっているかを示すリストである. これがこの立方体の実在正を示すキューになる.

日付がある項は, その日のこのブログに絵があったことを示す.

a. truncated tetrahedron 切頭四面体
((3 4) (6 4)) (3 6 6)
2008年10月29日

b. cub octahedron 立方 八面体
((3 8) (4 6)) (3 4 3 4)

c. truncated octahedron 切頭八面体
(4 6) (6 8)) (4 6 6)
2008年10月29日

d. truncated cube 切頭立方体
((3 8) (8 6)) (3 8 8)

e. rhomb cub octahedron 斜方立方 八面体
((3 8) (4 18)) (3 4 4 4)

f. truncated cub octahedron 切頭立方 八面体
((4 12) (6 8) (8 6)) (4 6 8)

g. icosi dodecahedron 二十 十二面体
((3 20) (5 12)) (3 5 3 5)

h. truncated icosahedron 切頭二十面体
((5 12) (6 20)) (5 6 6)
2008年10月29日

i. truncated dodecahedron 切頭十二面体
((3 20) (10 12)) (3 10 10)

j. snub cube 変形立方体
((3 32) (4 6)) (3 3 3 3 5)
2011年6月30日

k. rhomb icosi dodecahedron 斜方二十 十二面体
((3 20) (4 30) (5 12)) (3 4 5 4)
2011年6月19日

l. truncated icosi dodecahedron 切頭二十 十二面体
((4 30) (6 20) (10 12)) (4 6 8)
2011年6月29日

m. snub dodecahedron 変形十二面体
((3 80) (5 12)) (3 3 3 3 5)
2011年7月7日

それ以外のを以下に示す. 描いた時が違うので, 描画法がばらばらだが, ご容赦を. また時間のある時に揃えることもあろう.



立方 八面体

切頭立方体


斜方立方八面体


切頭立方八面体


二十 十二面体


切頭十二面体


ところで私はこれらの立体の頂点の座標を計算し, PostScriptでプログラムして描いただけだが, 東京理科大学 近代科学資料館には菱田為吉氏による, 木製の多面体模型がある. 私は資料館に行くたびに, うっとりと眺めてくる.

Platonの5個の正多面体, Archimedesの13個の多面体は, 立体マニアの興味を引き続けてきた. 私もそれに取り込まれた1人である.

2011年7月7日木曜日

多面体描画道楽

Archimedesの多面体の最後は, snubdodecahedron, 日本語では変形正十二面体という.

ものの本によると, この立体は, 三角形が80, 五角形が12で構成される. 従って稜は(3×80+5×12)/2=150, 頂点は150+2-(80+12)=60である.

正十二面体は, 正五角形の面が12, 頂点はHamilton巡礼で良く知られた20, 稜(辺)はEulerの式から12+20-2=30あった. 従って, 変形正十二面体では, 正五角形は正十二面体の面に対応し, 三角形は頂点+2×稜である.

さて, 下の図を見て欲しい. 大きい正五角形が3つ描いてある. 左の上と下は, x軸の方から見て正面になるものだ. 右の寝そべったのは, y軸方向から見えるものだ.



それぞれの正五角形の中に, 適当に縮小した正五角形を描き, それをθだけ傾ける. 縮小しただけでは, 斜方正十二面体になる. 今回は傾けるのが味噌だ. 縮小したことで 元は3つの正五角形が1点に集まっていたものが, 図のE, H, Fのように分かれ, 三角形EHFが出来る.

また元は1つの辺だったものが, AEとGFに分かれる. 傾けたため, AとFが近づき, それを結ぶと, 三角形AFGと三角形FAEが図のように出来る.

つまり1つの頂点が1つの三角形, 1つの辺が2つの三角形になるから, 前述のように20+30*2=80の三角形になる.

従って, この立体の図を描くためには, 赤で示した線分の長さが等しくなるように, 縮小比と回転角を決めなければならない.

正面上の辺AEを持つ正五角形の各頂点の立体座標が分かれば, 下の辺FGを持つ正五角形の各頂点の立体座標は, 上の座標をx軸について, 180度回転すれば得られるということから始まり, すべての面の頂点の座標はなんとか軸対称回転で計算出来, 思い通りの変形正十二面体の図が得られるはずである.

いつものように, 1辺が2の正五角形で出来た正十二面体で計算する. 正五角形の中心までの高さは, tan 54°=1.3763819204711734; 上の頂点までの高さは, tan72°=3.0776835371752527; 半径はこの差だから 1.7013016167040793. その中に半径rに内接する正五角形を作る.

その中心から見た頂点の座標をまず計算する. 72n+36°の正弦と余弦をsn0やcs0のように書くことにする.

rとθが与えられると, 以下のプログラムは, 3次元に変換し, 各点のx,y,z座標を計算する. うっとうしいが全部書くと



これらの点から, AF, FE, EH, HFの距離とAEの距離の差の絶対値の和を最小にするrとθを決めたい. こんな式は, これ以上計算する気にならないので, 今回は山登り法で最適値を探すようにした.

とりあえず, rを0.8, 0.85, ... 1.25, thetaを0, 0.5, ...0.45と変え, この関数の値をプロットすると, この範囲に最小値があるらしい.



大体r=0.95, θ=0.21 radianあたりが解らしい. PostScriptで描画するから, この程度の値で充分である.



今回の描画プログラムは, 見えない面の破線は, 一度しか描かないようにしているから, 破線がきれいに見えている.

2011年6月30日木曜日

多面体描画道楽

Archimedesの多面体はまだsnub cubeとsnub dodecahedronの2つが残っている. 今回は前者 変形立方体に挑戦.

元は立方体である. その各面の正方形を縮小し, どちらかに多少回転する. その方向により, 2つの相対の形がある.

どのくらい縮小するか, どのくらい回転するかを計算しなければならない. そこで次の図のように考える.



3つの似たような図があるが, 上が平面図(z方向から見た), 右下が側面図(y方向から見た), 左下が正面図(x方向から見た)である.

この立体は6の正方形と32の正三角形で被われる. 正方形と正三角形は辺を共有するから, すべての辺は同じ長さになる. それをdとする.

また, 座標の中心を立方体の中心にし, 立方体の1辺の長さを2とすると, A, B, C, Dの座標はそれぞれ

A(1,a,b)
B(1,-b,a)
C(a,b,1)
D(b,-a,1)

である. ABの距離の2乗はd2=(a+b)2+(a-b)2=2a2+2b2.

ACの距離の2乗はd2=(1-a)2+(1-b)2+(a-b)2.
従って, a+b+ab=1.

ADの距離の2乗はd2=(1-b)2+(2a)2+(1-b)2.
従って, 2b-a2=1, b=(1+a2)/2.

このbを上の式に入れると, a3+a2+3a=1. 3次式だから, 実数解はあるはずと思い, WolframAlphaの解いてもらうと, a=0.295598, 従ってb=0.543689, 念のため a+b+abを計算する.

(define a 0.295598)
(define b 0.543698)
(+ a b (* a b)) => 1.0000120414040001

計算は存外簡単であった. 球に内接の件は, どの頂点の座標も, 1とaとbで出来ているから, 当然である.

これさえ分かれば, 変形立方体を描くのはわけけない. いや1点落とし穴があった. 手前の面の座標から, 向こうの面の座標を得るのに, ついyz軸面の鏡面対称を使ったが, 正方形がが傾いているから, z軸に対して180度回転しなければならなかった.



ところで, Archimedesたちが, こういう形になぜ気づいたかは不思議だ.

2011年6月29日水曜日

多面体描画道楽

Archimedes多面体には, もう1つの二十・十二面体がある. 英語ではtruncatedicosidodecahedronとかgreat rhombicosidodecahedronという. 日本語では切頭二十・十二面体であろう. 図を描くのは存外難しかった. (いや, さらに難物が今後に控えている.)

これは正十二面体の12の正五角形を正十角形にし, その隙間に20の正六角形と30の正方形を詰めたものである.

まず, 正五角形に内接する正十角形を作らなければならない. それには, 下の図のように考える.



左のPOは, もとになる正十二面体の1つの正五角形を横(y軸)方向から見たものだ. この下の稜線上にx方向から見える正方形があり, その1辺の長さを2xとする. このxは, 正五角形の面内では, yの長さになる. 面のなす角をαとすると, y=x/sin αだ. 但し, tan α=(3+√5)/(1+√5).

右は, 正五角形の右下を法線方向から見たものだ. Aの所に54°の三角形があり, その縦はy+x sin 36°, 横はOAが1だから, 1-x-x cos 36°であり, この比がtan 54°なので, xが解ける.

この代表の正十角形の各点のx, y, z座標は

x y z
0 2.4180339887498947 -.3236067977499789 .32360679774997897
1 2.218033988749895 -.8472135954999578 .6472135954999579
2 1.8944271909999162 -1.0472135954999577 1.1708203932499366
3 1.5708203932499372 -.8472135954999578 1.6944271909999156
4 1.3708203932499372 -.32360679774997897 2.0180339887498944
5 1.3708203932499372 .3236067977499789 2.0180339887498944
6 1.5708203932499372 .8472135954999578 1.6944271909999156
7 1.8944271909999162 1.0472135954999577 1.1708203932499366
8 2.218033988749895 .8472135954999578 .6472135954999578
9 2.4180339887498947 .3236067977499789 .3236067977499789


と計算出来る. Archimedesの多面体も, 各頂点は球に内接するから, 上の座標からx2+y2+z2 を計算したのが下だ.


0 2.4609614157580197
1 2.46096141575802
2 2.46096141575802
3 2.4609614157580197
4 2.4609614157580197
5 2.4609614157580197
6 2.4609614157580197
7 2.46096141575802
8 2.46096141575802
9 2.4609614157580197


まぁ, よかろう. あとは隙間の面を指定するだけである.

そうして描いたのがこの図である.

2011年6月19日日曜日

多面体描画道楽

Archimedes多面体というのがある. 切頭八面体とか切頭二十面体とかはその仲間だ. その中に, 斜方二十・十二面体という長い名前のものがあった. 英語ではrhomb icosi dodecahedronという. rhombが斜方, icosiが二十, dodecaが十二, hedronが面体の単数だ.

これば難しそうだ. 図面を何日も眺めたが, アタックの入口が見つからない. 空しく過しているうちに, やっと解決の糸口が見えてきた. 次の図で説明しよう.



左は正十二面体をx軸方向から見たもので, 真下のXと書いた上の点がX軸である. 右はそれをy軸方向から見た図である.

斜方二十・十二面体には, 五角形が12, 四角形が30, 三角形が20ある. 一方, その元になる正十二面体は, 面Fが12, 頂点VがHamiltonianの巡礼で分かるように20, 辺Eが30ある. Eulerの式 V+F=E+2である.

つまり, 五角形は面が, 四角形は辺が, 三角形は頂点に対応している.

正十二面体の頂点は, 3つの面が合わさっているから, それを削っていけば, 三角形が現れるが, それでは五角形が十角形になる切頭十二面体が出来るだけである.

下の左の図で, 正五角形ABCDE(面が傾いているから, 上下がつぶれて見える)を中心に向って縮小すると, 下の辺と下にある五角形の対応する辺で作る四角形が正方形になる時点があるはずで, その時, 同じ辺の長さを持つ正五角形A'B'C'D'E'と正方形が出来る.

というわけで, A', B', C', D', E'の右方向へのy座標と, 上方向のz座標が計算出来る. 各点のz座標が分かると, 右の図のようにして, x座標も決る.

AEの距離を2とした時, A',B',C'の座標は次の通りである.



こうして描いた多面体は次の通り.



もっともらしいではないか.