メールマガジン・新着情報一覧
- TOP
- メールマガジン・新着情報一覧
- A-0060. STLで正20面体を作ってみました(後半) — TT
2016.06.08
A-0060. STLで正20面体を作ってみました(後半) — TT
◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇ STLで正20面体を作ってみました(後半) 発行:エスオーエル株式会社 https://www.sol-j.co.jp/ 連載「X線CTで高精度寸法測定!?」 2016年6月8日号 VOL.060 平素は格別のお引き立てを賜り、厚く御礼申し上げます。 X線CTスキャンによる精密測定やアプリケーション開発情報などをテーマに、 無料にてメールマガジンを配信いたしております。 ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇ さて、前回は、正20面体の頂点座標を求めて、 STLで正20面体を作ろうという計算の前半でした。 今回は、その後半です。 状況設定や記号は前回の記事を参照して下さい。 頂点 P02 から 直線 P03-P06 に垂線を下して交わった点を G とします。 また、点 C から 直線 P02-P03 に垂線を下して交わった点を H とします。 三角形 P03-P02-G と 三角形 C-P02-H は、 どちらも 36°の角を持つ直角三角形なので、相似です。 P02 と P03 の距離は 1 で、P3 と G の距離は d/2 = (√5 + 1)/4 なので、 P02 と G の距離 e が求まります。 e = √( 1^2 - (d/2)^2 ) = √( ( 5 - √5 )/8 ) 三角形 P03-P02-G の各辺の長さが求まったので、 相似の関係にある三角形 C-P02-H の各辺の長さも求まります。 1 : (√5 + 1)/4 : √( ( 5 - √5 )/8 ) = b : a : 1/2 この比の式から a と b を計算すると、 a = ( √10 + √2 ) / 4√( 5 - √5 ) b = √2 / √( 5 - √5 ) になります。 次に、正20面体の外接球を考えて、その中心を K とします。 K から 各頂点までの距離を r としておきます。 さて、P01 と P02 と K を通る平面で正20面体を切ってみます。 K から 直線 P01-P02 に垂線を下して交わった点を J とします。 三角形 K-P01-J と 三角形 P02-P01-C は、相似な直角三角形です。 C と P02 までの距離を b で、P01 と P02 までの距離は 1 なので、 C と P01 までの距離 m は、 m = √( 1^2 - b^2 ) = √( 5 - √5 ) / √10 です。 そして、相似の関係より、 1/2 : r = m : 1 なので、 r = 1/(2m) = √10 / 2√( 5 - √5 ) です。 これで、正20面体の頂点座標を計算する準備ができました。 P01 = ( 0 , 0 , r ) P02 = ( 0 , b , r - m ) P03 = ( b sin 8×36° , b cos 8×36° , r - m ) P04 = ( b sin 6×36° , b cos 6×36° , r - m ) P05 = ( b sin 4×36° , b cos 4×36° , r - m ) P06 = ( b sin 2×36° , b cos 2×36° , r - m ) P07 = ( b sin 2×36° , -b cos 2×36° , m - r ) P08 = ( b sin 4×36° , -b cos 4×36° , m - r ) P09 = ( b sin 6×36° , -b cos 6×36° , m - r ) P10 = ( b sin 8×36° , -b cos 8×36° , m - r ) P11 = ( 0 , -b , m - r ) P12 = ( 0 , 0 , -r ) 数値にすると、 P01 = ( 0.00000000 , 0.00000000 , 0.95105652 ) P02 = ( 0.00000000 , 0.85065081 , 0.42532540 ) P03 = ( -0.80901699 , 0.26286556 , 0.42532540 ) P04 = ( -0.50000000 , -0.68819096 , 0.42532540 ) P05 = ( 0.50000000 , -0.68819096 , 0.42532540 ) P06 = ( 0.80901699 , 0.26286556 , 0.42532540 ) P07 = ( 0.80901699 , -0.26286556 , -0.42532540 ) P08 = ( 0.50000000 , 0.68819096 , -0.42532540 ) P09 = ( -0.50000000 , 0.68819096 , -0.42532540 ) P10 = ( -0.80901699 , -0.26286556 , -0.42532540 ) P11 = ( 0.00000000 , -0.85065081 , -0.42532540 ) P12 = ( 0.00000000 , 0.00000000 , -0.95105652 ) となります。 この頂点座標から、20枚の三角形を作ることで、 STLファイルを直接書いて作成し、 無事に正20面体を表示させることができました。 このデータを使うと、コンピュータ上で自由に断面を切ったり、 自由な角度で投影したりすることができます。 実際にいろいろな断面図や投影図を見てみると、 いかに頭でイメージしていたものが貧弱だったかというのを 思い知らされます。 頭の中では、典型的な切り方や投影をいくつかやっただけで、 あたかも全てを把握してしまったかのように思ってしまいます。 空間認識能力は、 コンピュータや作図や計算によって、 目に見える形にして補助することができますが、 頼り切ってしまうと、衰えてしまいます。 頭の中で鮮明にイメージを再現できるように、訓練すると、 何かの役に立つかもしれません。 -- 高野智暢 ☆TomoScope専門サイトはこちら☆