gooブログはじめました!

写真付きで日記や趣味を書くならgooブログ

4次元世界の正多面体を体験する

2021-10-31 08:31:16 | ブログ
 3次元空間内の図形である正多面体は、正4面体、正6面体など5種類しか存在しない。4次元空間内で正多面体に相当する独自の立体は、正多胞体と呼ばれる。正n胞体は、6種類(n=5,8,16,24,120,600)存在するという。

 4次元正多面体の入門コースとして、正5胞体を構成することによってその世界を体験することにした。

 正4面体および正5胞体を構成する方法として、参考文献の方法が分かりやすいので、使わせてもらう。まず正4面体の構成から始める。

 xy平面上に正3角形を設定する。その重心は原点Oにあるとする。重心点をz軸に沿ってある高さhまで持ち上げる。例えば、正3角形の頂点をA(2,0,0);B(-1,SQRT(3),0);C(-1,-SQRT(3),0)とすると、重心を第4の頂点D(0,0,h)まで持ち上げればよい。線分ABの長さが2SQRT(3)であるので、線分ADの長さを同じとすることによって、h=2SQRT(2)が一意に決まる。頂点Dにはその頂点を共有する底面3角形と合同な3枚の正3角形が隙間なく敷きつめられ、底面3角形が加わって正4面体が完成する。

 次に、正5胞体の構成について述べる。3次元空間内に原点Oをその重心とする正4面体を設定する。例えば、正4面体の頂点をA’(1,1,1,0);B’(-1,-1,1,0);C’(1,-1,-1,0);D’(-1,1,-1,0)とする。ここで線分A’B’の長さは2SQRT(2)である。重心を第5の頂点E(0,0,0,h)まで持ち上げる。重心と各頂点を結ぶ同じ長さSQRT(3)の線分をスポークと呼ぶ。

 正5胞体のE以外の頂点をA(1,1,1,w1);B(-1,-1,1,w2);C(1,-1,-1,w3);D(-1,1,-1,w4)とする。各頂点間の長さがすべて2SQRT(2)とする方程式ができるが、それを解くと、
   w1=w2=w3=w4; w1-h=SQRT(5)または-SQRT(5)
が得られる。スポークAOの長さがスポークEOの長さに等しくかつh>0の条件からh=4/SQRT(5),w1~w4=-1/SQRT(5)が決まる。

 この結果、長さがSQRT(3)であったスポークが延びて4/SQRT(5)になっていることが分かる。A,B,C,D各頂点間の長さは2SQRT(2)のままで元の長さと変わらない。ここで頂点Eにはその頂点を共有し、底面の正4面体と合同な4個の正4面体が隙間なく敷きつめられている。この4個の正4面体に、底面の正4面体と合同な正4面体ABCDが加わって正5胞体を構成する。

 正5胞体を構成する各正4面体を3次元空間の図形として表現することは、正4面体のスケールを表現できないため不可能であるが、スケールを無視して各正4面体が他の正4面体と3角形を介して接合している状態を可視化することは可能である。3次元空間において、重心(原点O)を正5胞体の頂点Eとみなす。そうすると、頂点Eを共有する4個の4面体ABCE,BCDE,ACDE,ABDEと、Eを共有しない4面体ABCDとが存在する。

 例えば4面体ABCEは、他の4個の4面体と3角形ABE,BCE,ACE,ABCを共有している。他の4面体についても同様である。どの4面体をとっても、他の4個の4面体と3角形を介して接合しているのが分かる。

 2次元空間において、正3角形ABCを基にして正4面体を構成することは無理であるが、その正3角形の重心となる原点Oを第4の頂点Dとみなせば、Dと各頂点を結ぶ線分は、3個の3角形のうちの2つによって共有される線分であることが可視化される。

 この正5胞体の3次元直交射影を得るには、正5胞体ABCDEの各頂点の第4成分を0にするだけでよい。その結果、正4面体A’B’C’D’が得られ、頂点Eは原点O(重心)に射影される。スポークは元の長さSQRT(3)に収縮する。

 ここで、頂点Eを他の頂点A,B,C,Dのいずれかと置き換えても同じ3次元直交射影が得られる。つまり、5つの同型の直交射影が存在する(3次元正4面体でも同様ではあるが)。

 3次元直交射影された正4面体A’B’C’D’の’をとってABCDとみなすことにし、この正4面体の2次元直交射影の図を表示したい。

 ここで正4面体ABCDの各頂点の座標値をA(0,2,-SQRT(2)/2);B(-SQRT(3),-1,-SQRT(2)/2);C(SQRT(3),-1,-SQRT(2)/2);D(0,0,3SQRT(2)/2)のように変更する。原点Oは頂点Eの射影となる。そうすると、2次元直交射影は、正4面体ABCDをxz平面上に射影したものとなる。

 以下に正4面体ABCDの2次元射影を図示する。



 原点O(重心)から各頂点にのびる赤い線分がスポークである。原点Oは線分BCより上に位置するので、重心Oが底面ABCより上にある様子がみてとれる。

 多胞体とは、4次元空間においてその中に複数の正多面体を隙間なく詰め合わせるジグソー・パズルのようなものらしい(立体パズルとも言われる)。こうなると、正5胞体だけでは物足りなくなり、正16胞体のようなさらに高度な正多胞体を体験したくなってきた。

 参考文献
 数学セミナー2021年9月号: 平澤美可三著「4次元正多面体入門」(日本評論社)

3Dオブジェクトの回転操作

2021-10-10 08:04:01 | ブログ
 3Dオブジェクトの回転操作、特に回転軸を任意の方向に設定する必要があるような回転操作について語る。

 シンプルな3Dオブジェクトの一つとして、正六面体がある。このオブジェクトの中心点を原点Oとするような(x,y,z)座標系を設け、頂点P1の座標を(1,1,1)とする。原点Oと点P1を結ぶ方向にz’軸をとり、回転軸とする。回転軸の方向ベクトルは、(1/SQRT(3),1/SQRT(3),1/SQRT(3))と表せる。

 次に、x’軸とy’軸各々の方向ベクトルを設定することになる。方向余弦で表す6個の未知数があるのに対して、5個の等式しか存在しない。つまり、x’,y’軸各々についての正規化条件と、x’,y’,z’軸間の3個の直交条件との5個の等式しかなく、x’,y’軸の方向ベクトルの設定には、自由度があり、一意には定まらない。

 例えば、x’軸の方向ベクトルの3つの要素のうち2つの値が等しいと置けばよいだろう。ここでは、x'軸の方向ベクトルを(1/SQRT(6),1/SQRT(6),-2/SQRT(6))に、y'軸の方向ベクトルを(1/SQRT(2),-1/SQRT(2),0)に設定したものとする。

 次に、座標変換の公式を用いてオブジェクト上の点の座標(x,y,z)を回転座標系の座標(x’,y’,z’)に変換する。例えば頂点P1の座標(1,1,1)がP1’(0,0,SQRT(3))に変換される。同様に頂点P5(1,1,-1)がP5’(2SQRT(6)/3,0,1/SQRT(3))に、面上の点Q(1,0,0)がQ’(1/SQRT(6),-1/SQRT(2),1/SQRT(3))に変換される。

 さらに、点P5’および点Q’を回転軸のまわりに角度t(シーター)だけ回転させたときの点P5’’およびQ’’の座標を計算すると、P5’’は(2SQRT(6)cost/3,2SQRT(6)sint/3,1/SQRT(3))となる。Q’’は、
   x’’=cost/SQRT(6)+sint/SQRT(2)
y’’=sint/SQRT(6)-cost/SQRT(2)
z’’=1/SQRT(3)
となる。

 以下、4元数を用いる三次元空間における回転操作について述べる。4元数とは、19世紀の数学者ハミルトンが開拓した数体系のことである。高校数学では4元数を扱わないし、大学の理工系学科でも4元数を扱わないと思われるので、この扱いはマニアックにも感じられる。しかし、衛星の姿勢制御の計算などに実際に4元数が使われているようであるし、参考文献にはなぜか「高校数学の美しい物語」というサブタイトルも付いているので、あながち無意味なことでもないだろう。

 4元数は、次の式
   q=a+bi+cj+dk (a,b,c,dは実数)
によって定義される。ここで
   i^2=j^2=k^2=-1; jk=-kj=i; ki=-ik=j; ij=-ji=k
として乗法が定義されている。

 qと共役な4元数をq_と記すと、
   q_=a-bi-cj-dk
と定められる。なお4元数の詳細については、参考文献などを参照されたい。

 4元数の虚数i,j,kの代わりに、4元数の虚数c,c’,c’’を導入し、上記事例の場合のz’軸の方向ベクトルをi,j,kを用いて次のように定義する。
   c=i/SQRT(3)+j/SQRT(3)+k/SQRT(3)

 P5’ベクトル(2SQRT(6)/3,0,1/SQRT(3))を次の4元数と同一視する。
   v=c/SQRT(3)+2c’SQRT(6)/3

 また、Q’ベクトル(1/SQRT(6),-1/SQRT(2),1/SQRT(3))を次の4元数と同一視する。
   v=c/SQRT(3)+c’/SQRT(6)-c’’/SQRT(2)
 ここで
   c^2=c’^2=c’’^2=-1; c’’c=-cc’’=c’; cc’=-c’c=c’’; c’c’’=-c’’c’=c
となり、i,j,kが持っていた関係がそっくりc,c’,c’’に受け継がれることになる。ここで、c,c’,c’’間の直交関係は、x’,y’,z’軸間の直交関係を受け継ぐことになる。したがって、回転操作ではi,j,kに関する演算は忘れて、c,c’,c’’に関する演算だけを考慮すればよい。

 4元数vをqが定める演算によって回転させると、v’=qvq_になる。

 頂点P5’についてこの回転計算を行うと、結果は、
   v’=c/SQRT(3)+2c’SQRT(6)cost/3+2c’’SQRT(6)sint/3
となって、上記計算結果に一致することを確認できる。

 また、点Q’についてこの回転計算を行うと、結果は、
 v’=c/SQRT(2)+(cost/SQRT(6)+sint/SQRT(2))c’+(sint/SQRT(6)-cost/SQRT(2))c’’
となって、上記計算結果に一致する。

 なお、自然科学カフェでスタッフをしておられる鵜沼さんから4元数の使い方についてご指導いただきました。ありがとうございます。

 参考文献
 インターネット記事「四元数と三次元空間における回転」