ラベル 菱形六十面体 の投稿を表示しています。 すべての投稿を表示
ラベル 菱形六十面体 の投稿を表示しています。 すべての投稿を表示

2016年3月1日火曜日

菱形六十面体

菱形六十面体についてはこれまで何度もこのブログに書いた. 夫々の菱形が黄金比であることは, MathWorldにそう書いてあったのを鵜呑みにしたきらいがある.

今回はそれを確かめてみたい.

下の図は正十二面体である. 中心を通る赤, 緑, 青の線はx, y, z軸を示す. それぞれの軸は正十二面体の30本ある稜線のうち6本の中央を通過する. 次の図との関係で偶数だけがついているが, その頂点を持つ正五角形で座標を考える.


頂点間の距離, 稜線0, 2の長さを2とすると, 正五角形の対角線8, 4の長さは2φ. 従って4の頂点の座標は(φ, φ, φ). それを基準に他の座標も分かって, 1は(φ2, -1, 0);2は(φ2, 1, 0); 6は(1, 0, φ2); 8は(φ, -φ, φ)である. (1のx座標は中心から0までの距離と, 中心から4までの距離が等しいことから計算できる.) この正五角形に5個の菱形を作ったのが下の図の菱形六十面体だ.



これをx軸の方向から撮影した写真がこれである.



写真では視差があるから, 注目している正五角形のついて正確な図にしたのが次の図だ.



ちょうど1のところをx軸がこちらへ向かっている. その両側へ1離れたところに02が来る. また1から真上に行ったところに中心10があるわけだが, その高さは現時点では未定.

さて菱形は真上から見れば菱形であるが, 少し横から見れば菱形に見える方向も皆無ではないものの, 一般には菱形に見えない. しかし平行四辺形であるのは確かである.

従って0,1,10,9の菱形, 1,2,3,10の菱形を考えると, 0,91,3の辺は1,10の辺と平行である. また9,100,1と平行なども分かる.

すると8,75,40,1などに平行である. 一方 10,5, 6,7の菱形は対角線の方向から見ているから菱形のままであり, 10,55,6の長さは等しい. 5, 6の高さの差(φ2-φ=1)は既知だから, 10の高さも確定し, 計算するとφ-1=1/φである. 5,4の幅が1だから, 5のy座標も1/φと決まる.

ところで残りは奥行きである. 2, 3 の辺は, 横から見ると, 正面図の6, 5の辺に相当していることが分かる. 従って3の奥行きが分かり, 3, 4 がz軸に平行なことも分かる. 従って10, 5, さらに5, 6もz軸に平行だったことも分かった.

つまり正面から見た菱形10,5, 6,7は真の形であった.

という次第で菱形の縦横比は1:φであったわけである.

2016年2月14日日曜日

菱形六十面体

2010年5月17日のこのブログの続きである. そこにはWolfram MathWorldのRhombic Hexecontahedronの項に 20 golden rhombohedra can be combined to form a solid rhombic hexecontahedron. と書いてあるのが気になっていて, そのrhombohedronの頂点の立体角を計算し, たしかに20個あると全立体角, 4πステラジアンになると書いた.

golden rhombohedra は菱形六面体とでも訳そうか, 6つの面が黄金菱形になっているものである.

Wolfram MathWorldのGolden Rhombohedronの項は, これには鋭角のものと鈍角のものがあるというが, ここで使うのは鋭角の方である. この項には1辺の長さaの鋭角黄金六面体の 体積は1/5√(10-2√5) a3とあり, また菱形六十面体の項にはその体積が4√(2(5+√5))a3とあるから, 体積的にも確かにそうである.

ざっと考えてみると, 菱形六十面体の母体である正十二面体には頂点が20あるから, 多分その頂点の数と菱形六面体が対応しているであろうと推察できるが, あまり自信はない.

昨今, 3Dプリンタが使えるようになったので, ちょっと作ってみようという気になった.



上の写真の上は20個の菱形六面体が出来たところ, 下はその5個を使い, 菱形六十面体の内, 正十二面体の一面に相当する面が完成した所である.

この写真では分らないが, 3Dプリンタで作ったものは, 存外 外面がざらざらで, 接着するのが大変であった. 次回はもっと時間がかかっても, もう少し精密な面にしてみたい.

さて, 次の5個で同様に正十二面体の反対側の面に相当する面も作る. この両方の5個組を北極と南極とすれば, 残りの10個で赤道に相当する部分を構成することになる.

それには10個の内2個ずつを接着して2個組を5組作り, それを一周するように繋げるのである. これは仲々面倒で, どの面とどの面が合さるのか, いろいろこねくり回さなければならない. まぁそうこうする内に固定出来た. 下の写真は接着中の写真で, 小型のクランプやしゃこ万力で押えているところである. 左に転がっている2個は北極と南極の5個組である.



出来上がった赤道部分のこのようである.



次の図はPostScriptで描いた, 菱形六十面体と上でいう北極, 赤道, 南極の図である. 手前右上から光が当っているように影を付けてみたが, 効果はいまいちであった.

全体
北極
赤道
南極

相対的な位置が分るように, 外接する正十二面体と, 中心を通るx,y,z軸も描いてある.

これで見ると20個すべての菱形六面体が中心に接しているのが分る. つまり赤道の組は中央が厚さ0である.

3Dプリンタで作ったモデルにはこのような精度は残念ながらない. でもこんな実験が出来るのも3Dプリンタのお蔭である.

2016年2月3日水曜日

菱形六十面体

菱形六十面体についてこのブログで何度も取り上げた. その最初, 2010年5月16日のに「角D'B'E'は黄金菱形なので, 黄金比φ=1.61に対して2cot-1(φ)=63.435°である. その一端を持ち上げると, 角DBEは少しずつ広がり, 72°になるわけだ. その時の傾き角を計算すると, 驚いたことに31.7175°であった. 」と書いている.


長い間 気になっていたが, 先頃 証明した. 図を見てほしい.

図の下は破線のAD'B'E'が縦1, 横φの黄金比の菱形である. 実線のADBEは角Aが72度で縦が1の菱形である. この横の対角線の長さを以下eとする. 黄金比の方の角Aの半分は31.7175°である.

図の上の直角三角形は底辺が下の実線の菱形の横の対角線, 斜線が黄金比の対角線で, これを描いてみると角Aがやはり31.7175°になるのである. この角を以下θとする.

証明したいのは, 上の31.7175°, つまりcos θ=e/φが下の31.7175°, つまりtan 2/φに等しいということである. 一連の計算は下の通り.


φの値はよく知られている. tan 36°はcos 36°がφ/2 から計算できる.

(0)上の図のθが欲しいので, atanの式を書く. 以下atanの引数を計算する.

(1) φとeの値を代入する. (2)根号の中, 第1項を展開し, 第2項の分母を有理化する. (3)根号の中を通分し, 1/eの値を書く.

(4)根号の中の分子を計算する.

(5)根号の中, 分母分子を2倍すると, 分母分子とも開平出来た.

一方 1/φも計算すると(6)(7)同じ値になった. めでたしめでたし.

2015年11月30日月曜日

菱形六十面体を織る

ネット上に山口大学理学部数楽工作倶楽部の菱形60面体編みというページがあった.

なんだか面白そうだとさっそく作って(編んで)みた. 下の写真がその完成品.



編むというのは糊を使わず, 紙の摩擦だけで固定されているからである. そんなことで菱形六十面体が作れるのかとうのが興味の中心である.

面を1/10にして正六面体で考えてみると, 下の図のように正方形を5枚繋げた(ペントミノの`I'の形)を環状にした帯を3個作り, 左から3個のような方向に置き, 左からx, y, zということにする. xとyの面が重なる手前左方向ではyがxの外に, yとzが重なる右方向ではzがyの外に, zとxが重なる上方向ではxがzの外になるように組み立てると, 右端のような六面体が出来る. いわゆるみすくみ状態になって下の帯を上から抑える構造に出来ている.



菱形六十面体もこの方針で作られいるようだ.

私は元の型紙をダウンロードしたのではなく, PostScriptで書き直し, 少し厚手の紙に印刷し, 山折り谷折りをした後, カッターで帯を1枚ずつ切離し, 裏の番号を写してから組み立てに取り掛かった. 小さいクリップを5個使い, 組み合わさった場所を仮止めしながら進む.

意外な方向に帯が折れていくのに戸惑いながら完成したのがこのブログの最初の写真である. その後, 構造を理解しようと思い, 各面に番号を振ったり分解したり組みなおしたり, 結局3回作った. もちろん後ほど早く完成する.

さて菱形六十面体は, 私の5年ほど前のブログ にあるように, 正十二面体が基本になっている. その12個の正五角形の各面を5枚の黄金比の菱形に置き換えたもので, 面も稜も凹んでいる. 正十二面体の各面を(変形した)菱形にした展開図が下だ. 12の面には白抜きでAからLまで記号があるが, これは元の型紙の12本の帯の左から右へA,B,C,...としたものに対応する.



真ん中辺のAの正五角形の外周に, オレンジ色の0,1,2,3,4が見えるが, これが型紙の左端の帯で, 0と1の間は9の下を潜り, 1と2の間は50の下を潜り, 2と3の間は22の下を潜り,...という風になって, 0はJの面の, 1はBの面の, 2はKの面の一部を構成する. つまりAの帯はAに接続する5個の面を作るように出来ている.

そうしてみるとAの帯は, 0, 9, 1, 50, 2, 22, 3, 28, 4, 49の菱形を外に出たり下に潜ったりしてして立体を作ることが分かる. というより, 型紙の各帯の外に面する菱形に, Aには上から0から4, Bには5から9, Cには10から14,.. Lには55から59と番号を付け, その番号を展開図に書き込んだものである. (外周のギリシア小文字は対応する辺同士を示す.)

この番号を型紙に写したのが下の図だ.



A,B,C,D,Eの帯の上から4段目が左から50,51,52,53,54. F,G,H,I,Jの帯の最下段が左から55,56,57,58,59になっているのは, それぞれKとLの帯の下を潜って, KとLの面の周囲を固めているのである.

ちょっとややこしいのが糊しろの部分で, 正六面体のように簡単ではない. その説明はまたの機会にしたい.

もしかするとこの編み方はこちらが先かもしれない.

2010年6月1日火曜日

菱形六十面体

WolframAlphaのロゴの菱形六十面体. 最初は立体がよく認識出来なかったが, 模型を作ったり計算したりしているうちに, よく分かるようになった. 目がひとりでに凹凸に反応するようになった.

そうなると, いよいよ計算図学のお出ましで, いつものようにPostScriptで描いて見たくなる.



菱形六十面体を描くには, 上の正十二面体の各面に, 中を窪ませて, 5つの菱形を貼ることになる. その座標を計算しなければならない.

この正十二面体を描いた時の各稜の長さは2だったので, 下の図の0から10までの頂点の座標を, CDの長さを1として求めたい.

CD=1,
AC=tan 54°=1.376,
AB=BD=1/cos 18°=1.051,
AD=1/cos 54°=1.701,
AA'=h=AD tan 31.7175=1.051
までは簡単である.

この面を起して正十二面体に貼るのが次の図である. これはY軸方向から見た図で, XPが正十二面体の1つの面である. PZは長さ1で, 別の方向の稜の半分である. その結果, 1つの面の11個の点の座標が決る. (XPA'の角度atan(1.618/2.618)が実は31.7...°なので, 上の右の図と同じである.)



(define ver
'((2.618 -1 0) ;0
(2 0 0) ;1
(2.618 1 0) ;2
(1.618 1 .618);3
(1.618 1.618 1.618);4
(1 .618 1.618);5
(1 0 2.618) ;6
(1 -.618 1.618);7
(1.618 -1.618 1.618);8
(1.618 -1 .618);9
(1 0 .618) ;10
))
(define fs
'((0 9 10 1) (2 1 10 3) (4 3 10 5) (6 5 10 7) (8 7 10 9)))

verはverticesで頂点の座様である. 0.618が多いが, これは√5=2.236...の小数部の半分である. つまり2.618=(√5+3)/2, 1.618=(√5+1)/2, 0.618=(√5-1)/2である. 0,2,4,6,8の座標は, 最初の正十二面体の0,1,2,3,4の座標と当然合っている.

fsは各面を構成する頂点の番号を一定の方向に回りながら指定する.

一方, 点10の座標をとるのに, 菱形の長い方の対角線が2であり, 点10がzx面上にある, つまりy座標が0なことがわかっているので, xとz座標を連立方程式で解けるはずであり,WolframAlphaで解いてみた.

((3+(sqrt 5))/2-x)^2+1+z^2=(5-(sqrt 5))/2,
(1-x)^2+(((sqrt 5)-1)/2-z)^2=(5-(sqrt 5))/2

これからx=1, z= (√5-1)/ 2 が得られた.

1つの面の座標と面の番号が確定すると, 後はこの座標の鏡像をとったり, 座標軸に対して回転したりすると, 他の面の情報も苦もなく得られる. 2009年2月20日のブログ参照.

これまで正多面体をずいぶん描いたが, それらは凸形であった. 菱形六十面体には窪みがあり, 同じように描けるとは思えない. 今回はZバッファー方同様に, 60ある面を遠方から手前の順に並べ, 遠方から描くようにした. 結構いい加減な発想だが, うまく行かなければまた考え直すことにして, 兎に角やってみる.

最初に出来た図は下のようである. 計算でこういう絵が出来ると, やはり感動する.

この図は最初の正十二面体と同じ方向から見たように描いてある. 赤線のように飛び出した頂点を結んでみると, 最初の正十二面体に内接していることが理解出来る.

前々回のブログにあったように面に色を塗るとこのようになる.

面白いのは右下の2つの小さい緑の面で, 上の正十二面体では, 右下の破線で囲まれているむこう向きの面である. 手前の2本の実線の稜線が引っ込んだことと, むこう向きの面の中央が窪んだため, 奥の面がこちら向きになって, 見えるようになった.

正面上方の赤い面の方向から眺めた絵を描くと, WolframAlphaの(色違いの)ロゴが出来る. よく見るとロゴの中の星は下が尖っているから, 上下逆さまのようだが, まぁよかろう.

しかし, このロゴを描くだけなら, 遥かに簡単だ. 線の長さはみな同じ. 線の方向も5通りしかない. 線同士の接続順さえ押さえれば, このロゴは描くことが出来る.

/un 80 def %unit length
/ev {36 mul 72 sub dup sin un mul exch cos un mul} def
/rl {ev rlineto} def /rm {ev rmoveto} def
/a {0 rl} def /b {1 rl} def /c {2 rl} def /d {3 rl} def
/e {4 rl} def /f {5 rl} def /g {6 rl} def /h {7 rl} def
/i {8 rl} def /j {9 rl} def /l {1 rm} def /n {3 rm} def
/p {5 rm} def /r {7 rm} def /t {9 rm} def
/u {1 0 0 setrgbcolor} def /v {0 0 1 setrgbcolor} def
/w {0 1 0 setrgbcolor} def /x {1 0.5 0 setrgbcolor} def
/y {0 setgray} def /z {0 0 moveto} def
300 300 translate
/as {z l n g f i h a j c b e d} def %center
u as fill y as z b z d z f z h z j stroke
/k {z r f g a i b j d e} def %6 o'clock
w k fill y k z r g l i stroke
/m {z p d e i g j h b c} def %8 o'clock
x m fill y m z p e t g stroke
/o {z n b c g e h f j a} def %11 o'clock
v o fill y o z n c r e stroke
/q {z l j a e c f d h i} def %1 o'clock
x q fill y q z l a p c stroke
/s {z t h i c a d b f g} def %4 o'clock
v s fill y s z t i n a stroke

この程度に単純に描ける. 周囲の5つのパターンは, 72°ずつ回転しても描けるが, a→c→e→g→i→a, b→d→f→h→j→b, l→n→p→r→t→lの置換が面白く, このままにしてある.

なお, Processingで描いた動画がhttp://playground.iijlab.net/~ew/rhomb/rhomb.htmlにある. マウスを押すと初期状態に戻り, どれかキーを押すと停止する. 理由は不明だが, ロードに1分少々時間がかかるので, 辛抱して待って欲しい.

2010年5月17日月曜日

菱形六十面体

MathWorldのRhombic Hexecontahedronの項に気になる記述があった.

20個の菱形多面体(golden rhombohedra)を合わせると菱形六十面体が作れるというのである. 確かに外から見ると, それぞれの突起は菱形多面体のようである. しかも正十二面体の頂点は20個だから, 数的にも丁度合う.

問題は菱形多面体のとがった頂点の立体角で, 20個合わせて4 πになるかである. 黄金菱形のとがった角の半分はθ=atan(1/φ) (φは黄金比 (√5+1)/2)で, これを3枚合わせた立体角を計算したい. 球面三角法の図を使おう.



この図はOが菱形多面体のとがった頂点で, BOAが黄金菱形のとがった角, Cは底面の黄金菱形の半分で, ∠C=直角になっている. 小文字はOの周りの中心角, 大文字は2面角(dihedral angle)である.

この他 分かっているのは, b=θ; c=2θ; A=2Bの関係である.
sin C/sin c=sin B/sin bから, Bが分かり, Aが分かる.

またMathWorldのSpherical Triangleの項によれば, 2面角A,B,Cで囲まれる球面上の面積はR2[(A+B+C)-π]なので, これで立体角が得られる.

計算すると(単位はradian)

(define phi (/ (+ (sqrt 5) 1) 2)) => 1.618033988749895
(define b (atan (/ 1 phi))) => .5535743588970452
(=31.717474411461005°)
(define c (* 2 b)) => 1.1071487177940904
(define pi (* 4 (atan 1))) =>3.141592653589793
(define C (/ pi 2))
(define B (asin (/ (* (sin C) (sin b)) (sin c))))
=>.6283185307179586

あ, ∠Bはπ/5(=36°)なのか. 2Bの角が5個集まって360°になるわけだから, そういう考えから出発すれば, 何も計算することはなかったのか:-<.

従って2面角Aは2π/5; 球面上の面積は 6π/5-π=π/5.

たしかにこの立体角を20個合わせれば4πになるわ.

2010年5月16日日曜日

菱形六十面体

Wolfram Alphaというすごいサーバーがある. これを楽しんでいるうちに, ひと昔前のエイズウィルスの漫画でよく見たような真っ赤なロゴが気になり, 調べたところ, rhombic hexecontahedronであるということが分かった. rhombicは「菱形の」であり, hexecontaは「六十」なので, 日本語では「菱形六十面体」である.

菱形といっても, WolframMathWorldによれば, golden rhombi(rhombiはrhombusの複数形)という, そんじょそこらの菱形ではない.

つまり長短の対角線が黄金比になっているのである. 菱形六十面体は, 正十二面体の1つの正5角形を5つの黄金菱形で構成した凹面で置換えたものであった.


Wolfram Alphaのページ
には展開図があった. そこで早速PostScriptで写し取り, 印刷した紙を切り抜いて多面体を作る. 菱形内の番号は作業用で, 菱形を次々繋げて描いた順が見て取れる.



PostScriptでの描き方だが, 最後に描いた菱形に対し, 上下左右のいづれかの辺の鏡像を作るよう, 4つのサブルーチンを用意し, それを次々に呼び出している. 大きい枝分かれのあるところは, gsaveとgrestoreを使ってバックトラックする.

この図から作った模型が下の写真である.

こういう模型は最後の糊付けが最大の問題で, この模型も実は最後は留めていない.

一旦出来てみると, 意外に飛び離れた菱形が同一5角形のメンバーなことが分かる. 後のために展開図を塗り分けたが, 4色ではどの面に集まるかの情報が不足なので, 正十二面体の展開図にも番号を入れた.




下の図は, 正十二面体1つの面の構成する凹面5角形を考えてみたものである.

角DB'Eは黄金菱形なので, 黄金比φ=1.61に対して2 cot-1(φ)=63.435°である. その一端を持ち上げると, 角DBEは少しずつ広がり, 72°になるわけだ. その時の傾き角を計算すると, 驚いたことに31.7175°であった. つまり側面図のABと平面図のAD'は平行だった. こうして得られたBCは, 中央の窪みからの頂点の高さである. またD,Eの高さはBCの半分である.

そうと分かれば, 凹面5角形が描ける. 次の図は, いろいろな方向から凹面5角形を描いたもので, 左上が真横から, 続いて視点を15°ずつ増やし, 最後の右下は真上から見たものである.



これと正十二面体のプログラムを合わせれば, 菱形六十面体の絵も描けると思うがそれはいずれまたということにしよう.