POLYHEDRON OPERATIONS パッケージ チュートリアル

多面体操作パッケージ

プラトンの立体とは,面と頂点がすべて同じタイプである凸多面体のことである.このような立体は5つある.この他にも面と頂点がすべて同じタイプであるが,非凸多面体であるものがある.このパッケージには,PolyhedronDataで利用できる多面体の特性のいくつかを変更するための機能が収められている.

TetrahedronCube
OctahedronDodecahedron
IcosahedronHexahedron
GreatDodecahedronSmallStellatedDodecahedron
GreatStellatedDodecahedronGreatIcosahedron

利用可能な多面体の例

パッケージをロードする.
In[1]:=
Click for copyable input
原点を中心とする12面体である.
In[2]:=
Click for copyable input
Out[2]=
次は2つの多面体を同時に表示する.20面体の直径は倍に縮小されており,中心は点に移動されている.
In[3]:=
Click for copyable input
Out[3]=
Stellate[PolyhedronData[polyname]]星状の多面体を表示
Stellate[PolyhedronData[polyname],ratio]
星状比が ratio の星状多面体を表示
Geodesate[PolyhedronData[polyname],n]
多面体の各面の次数 の正平面充填形を外接球に投影したものを表示する
Geodesate[PolyhedronData[polyname],n,{x,y,z},radius]
多面体の各面の次数 の正平面充填形を,中心で大きさ radius の外接球に投影したものを表示する
Truncate[PolyhedronData[polyname]]面取りした多面体を表示する
Truncate[PolyhedronData[polyname],ratio]
多角形の辺を割合 ratio で面取りした多面体を表示する
OpenTruncate[PolyhedronData[polyname]]
面取りされた多面体を,面取りされた頂点を閉じる多角形を含まず表示する
OpenTruncate[PolyhedronData[polyname],ratio]
辺を割合 ratio で切り取って面取りした多面体を,切り取った頂点を多角形で塞がずに表示する

多面体の変換関数

多面体はデフォルトでは原点を中心とし,原点から各辺の中点までが単位距離となる.凸状の立体は何でもStellateを用いて星状にすることができる.これを使うと多面体の各面がその面を底面とした角錐に置き換えられる.ユーザが星状化の割合を変えることもできる.この割合が未満の場合は凹状になり,デフォルトの割合はである.Geodesateは五面以上の多面体を外接球に投影する前に三角形に分割する.各面の 次の正平面充填形が与えられていない場合,デフォルト値のが用いられる.球のデフォルト位置はで半径はである.TruncateOpenTruncateはあらゆる多面体に作用し,多面体の各頂点を切り取る.切り取る割合のデフォルト値はである.

星形化の比率がに等しい星型八面体である.先端までが非常に長い.
In[4]:=
Click for copyable input
Out[4]=
次は外接球に投影される前に三角形分割された多面体の例である.
In[5]:=
Click for copyable input
Out[5]=
次は各面の辺を40%切り取った多面体の例である.
In[6]:=
Click for copyable input
Out[6]=
OpenTruncateを使うと切り取られた多面体の内側が見られる.
In[7]:=
Click for copyable input
Out[7]=

Firstを使うとPolyhedronDataにより生成されたオブジェクトから多角形のリストをGraphicsComplex形式で抽出することができる.また,PolyhedronDataで利用できるはそれぞれ,頂点の座標,多面体の各面に対するグラフィックスプリミティブのリスト,多面体の辺に対するグラフィックスプリミティブを与える.

First[PolyhedronData[polyname]]指定された多面体のグラフィックスを表すGraphicsComplexを与える
PolyhedronData[polyname,"VertexCoordinates"]
多面体の頂点座標のリストを与える
PolyhedronData[polyname,"VertexCoordinates"]
多面体の面のリストをPolygonプリミティブとして与える
PolyhedronData[polyname,"Edges"]多面体の辺のリストをLineプリミティブとして与える

頂点,面,辺データの取得

次は原点を中心とする四面体に対応するGraphicsComplexオブジェクトである.
In[8]:=
Click for copyable input
Out[8]=
この四面体の頂点を与える.
In[9]:=
Click for copyable input
Out[9]=
Normalを使い,GraphicsComplexPolygonプリミティブのリストに変換する.
In[10]:=
Click for copyable input
Out[10]=
以下は四面体の辺を表すLineプリミティブのリストを与える.
In[11]:=
Click for copyable input
Out[11]=