Image of 120-cell making by POV-Ray
POV-Rayで作成した120-cellの画像[2001.06.02]
少し以前に、POV-Ray 3.1(レイトレーシングのプログラム)で幾何学的図形のComputer Graphics(CG)を作成したので紹介する。
その動機は、高等学校時代に学校の図書室にあったCoxetorの"幾何学入門"(参考文献[1]の翻訳)という本に、4次元の正多胞体(正多面体の拡張図形)についての記述を読んだ時に遡る。
その中の120-cell(正12面体を120個結合した図形,120胞体{5,3,3})の模形の写真に魅せられて、いつかそれを作成してみたいと思っていた。当時、針金を使って、24-cell(正8面体を24個結合した図形{3,4,3})やsnub-24-cell(正20面体24個と正4面体を120個結合した準正多胞体s{3,4,3})までは作成できた。しかし、120-cellは、平面上への投影図の作図が難しく(面倒であり)、かつ針金では工作精度が不十分なため、挑戦することができなかった。
針金では作成が困難だった120-cellの模形も、CGならうまく表現できるはずだと思い、PerlとPOV-Rayで挑戦して成功した。
R4内での120-cellの600個の頂点の座標は、以下の通りである。
ただし、τは黄金分割比,つまり,2次方程式τ2-τ-1=0の正根τ=(1+sqrt(5))/2=1.6180339887...である。
- (±2,±2,0,0)とその置換
- (±sqrt(5),±1,±1,±1)とその置換
- (±τ,±τ,±τ,±τ-2)とその置換
- (±τ2,±τ-1,±τ-1,±τ-1)とその置換
- (±τ2,±τ-2,±1,0)とその偶置換
- (±sqrt(5),±τ-1,±τ,0)とその偶置換
- (±2,±1,±τ,±τ-1)とその偶置換
R4内の120-cellの600個の頂点と1200本の辺を3次元空間R3に射影する。
この部分はPerlスクリプトで作成した。
具体的には、まずR4上の120-cellの全頂点をR3上に射影する。
次に、R4上で120-cellの全ての頂点間の距離を計算し、正しい長さを持つ辺だけを選択し(無駄が多いことは承知しているが、プログラムは単純になる)、R3上に射影する。
この出力結果を組み込んで,POV-Rayのソースプログラムを作成する。
NetBSD/i386上でbuildしたPOV-Ray 3.01gで画像を作成して、jpeg形式に変換すると、以下のようになる。
また、カメラの位置や向き、図形の位置を少しづつ変化させて、複数の画像を作成し結合すると、CGによるanimationを作成することも可能である。
[参考文献]
- [1]H.M.S.Coxetor, F.R.S. ,"Introduction to Geometry Second Edition", John Wiley & Sons, Inc., p403-404, 1961, ISBN0-471-50548-0.
- [2]小室 日出樹, "POV-Rayではじめるレイトレーシング", アスキー出版局, 1998, ISBN4-6561-1831-3, {3800円}.
- [3]POV-Rayの公式ページ.
- [4]Larry Wall, Tom Christiansen, Randal L.Schwartz, "Programming Perl Second Editon", O'Reilly & Associates, Inc., 1996, ISBN1-56592-149-6.
- [5]増井 俊之, "Perl書法", アスキー出版局, 1993, ISBN4-7561-0281-6, {3107円}.
Last Update: 2006.12.03 |
H.Nakao |