成果物
www.youtube.com
今回は、Icosphereを作るため正二十面体を作っていたのですが、ついでに全ての正多面体を実装しました。Wikipediaなどで調べてみると、意外な描画方法だったので、内部に描画する時のヒントを表示してみました。
コード
Polyhedronシリーズのリポジトリに追加しました。今後Icosphereも追加する予定です。
github.com
解説
今回は、外接円の半径(r)で大きさを指定できるようにしました。
正四面体
式はこのようになっています。もう少し簡単に計算する方法もありますが。ピラミッドのような角度で見える方が自然なのでこのような式にしました。
Wiki
正四面体 - Wikipedia
正六面体
式はこのようになっています。forループをΣで表現しています。
Wiki
正六面体 - Wikipedia
正八面体
式はこのようになっています。
Wiki
正八面体 - Wikipedia
正十二面体
式はこちらです。正六面体の頂点を全て含んでいます。またφは黄金比です。ただ1/φはそのまま計算すると精度が悪いので別の方法を使っています。
Wiki
正十二面体 - Wikipedia
正二十面体
直角に交わる黄金比のカードの頂点をつなぎ合わせるようにして描画します。今回は、半径から求めたいのでカードの対角線の長さを求め、半径を割っています。すいません!結局For文使いました…
Wiki
正二十面体 - Wikipedia