【オイラーの多面体定理と正多面体】正四面体(Tetrahedron)と正六面体(Cube)と正八面体(Octahedron)と正二十面体(Icosahedron)の狭間。そして正十二面体（Dodecahedron）との関係について。

[【Rで球面幾何学】そもそも「内積(Inner Product)」とは「外積(Outer Product)」とは何か？](https://qiita.com/ochimusha01/items/b34f73d13eef7853)
>今回の**球面幾何学シリーズ**(<font color="blue">Spherical Geometry Series</font>)で主に扱う**対蹠座標系**(<font color="blue">Antipordal Coordinate System</font>)は座標単位となるベクトル積は原蹠と対蹠の座標が固定された単位球面。要するに原蹠と対蹠を結ぶ直径、およびそれが浮かび上がらせる単位球面上の任意の頂点のみが「**実**」。むしろそれを結ぶ辺や面こそが「**虚**」という極めて量子力学的な系なのです。

さて、どういう事なんでしょう？　ここでは三角形を巡る**位相転換過程**(<font color="blue">Phase Shift Process</font>)の追跡を通じてその謎に迫ってみたいと思います。

#出発点としてのただの正三角形(<font color="blue">Equilateral Triangle</font>)
正三角形は「**面を起点に単一図形で平面充填**(<font color="blue">Tiring</font>)**可能な**」**正平面充填形**(<font color="blue">Equilateral Triangle</font>) の一つなので、これは立派な「**安定型**」の一つといえましょう（<font color="green">そして平面図形的展開においては、起点としての原蹠か対蹠のみが重要で反対側の頂点との関係性は問われない</font>）。
![Tetrahedron15.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/3651c7ee-ba65-f5c6-14ae-dd295ccf7e08.gif)

```R
library(rgl)
#分割数Nod(Number of divide)=3
NoD<-3
#円周分割数列(Sequence of Divided Circumference)
SoDC<-seq(0,2*pi,length=NoD+1)

#原蹠(PorTal)
portal_i<-0
portal_j<-0
portal_k<-1
portal_text=paste0("PT(",portal_i,",",portal_j,",",portal_k,")")

#原蹠表示
texts3d(portal_i,portal_j,portal_k,texts=portal_text,col=rgb(0,0,0),adj=1.0)

#対蹠(AntiPordal)
antipordal_i<-0
antipordal_j<-0
antipordal_k<--1
antipordal_text=paste0("AP(",antipordal_i,",",antipordal_j,",",antipordal_k,")" main="Cross section for ")

#対蹠表示
texts3d(antipordal_i,antipordal_j,antipordal_k,texts=antipordal_text,col=rgb(0,0,0),adj=1.0)

#立方対角線(Cubic Diagonal)
lines3d(c(portal_i,antipordal_i),c(portal_j,antipordal_j),c(portal_k,antipordal_k),col=rgb(1,0,0),lwd=2)

#正三角形描画
mx<-cos(SoDC)*sin(pi/3)
my<-sin(SoDC)*sin(pi/3)

lines3d(c(mx[1],mx[2]),c(my[1],my[2]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[2],mx[3]),c(my[2],my[3]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[3],mx[1]),c(my[3],my[1]),c(0,0),col=rgb(0,0,0),lwd=1)

#アニメーション
movie3d(spin3d(axis=c(0,0,1),rpm=5),duration=10,fps=25,movie="~/Desktop/Tetrahedron15")
```
①ここで現れる**正三角形**(<font color="blue">Equilateral Triangle</font>)は奇数形図形なのでそれぞれ原蹠から出発し対蹠に届いてない状態の一対として顕現。
[【Rで球面幾何学】正四面体と正六面体と正八面体の連続性と「テトラパックの思わぬ正体」について。](https://qiita.com/ochimusha01/items/3356f7c805917660632c)
![20200207094535.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/50c9b16f-bd89-df18-8a2a-9ae775f4fa4a.png)

#正四面体(<font color="blue">Regular Tetrahedron</font>)の導入(<font color="blue">Introduction</font>)
この座標系においては頂点のみが「(<font color="blue">球表面上に存在する</font>)<font color="red">実</font>(<font color="blue">Reality</font>)」であり、辺も面も「(<font color="blue">球表面外に仮想として存在するだけの</font>)<font color="red">虚</font>(<font color="blue">Imaginary</font>)」に過ぎないので、**正三角形**のみが顕現している状態に頂点が一つ追加されるとたちまち**四面体**が顕現します(<font color="blue">要するに三角形が二枚とか三枚の状態が実質上存在しない</font>)。中でも最も安定してるのが(<font color="blue">全ての辺と面が同型の</font>)**正四面体**が**安定型**なのでその代表格と目される次第。
![Tetrahedron05.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210125/20210125143738.gif)

```R
library(rgl)
#分割数Nod(Number of divide)=3
NoD<-3
#円周分割数列(Sequence of Divided Circumference)
SoDC<-seq(0,2*pi,length=NoD+1)

#原蹠(PorTal)
portal_i<-0
portal_j<-0
portal_k<-1
portal_text=paste0("PT(",portal_i,",",portal_j,",",portal_k,")")

#原蹠表示
texts3d(portal_i,portal_j,portal_k,texts=portal_text,col=rgb(0,0,0),adj=1.0)

#対蹠(AntiPordal)
antipordal_i<-0
antipordal_j<-0
antipordal_k<--1
antipordal_text=paste0("AP(",antipordal_i,",",antipordal_j,",",antipordal_k,")" main="Cross section for ")

#対蹠表示
texts3d(antipordal_i,antipordal_j,antipordal_k,texts=antipordal_text,col=rgb(0,0,0),adj=1.0)

#立方対角線(Cubic Diagonal)
lines3d(c(portal_i,antipordal_i),c(portal_j,antipordal_j),c(portal_k,antipordal_k),col=rgb(1,0,0),lwd=2)

#正四面体描画
mx<-cos(SoDC)*sin(pi/3)
my<-sin(SoDC)*sin(pi/3)

lines3d(c(portal_i,mx[1]),c(portal_j,my[1]),c(portal_k,-1/3),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[2]),c(portal_j,my[2]),c(portal_k,-1/3),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[3]),c(portal_j,my[3]),c(portal_k,-1/3),col=rgb(0,0,0),lwd=1)

lines3d(c(mx[1],mx[2]),c(my[1],my[2]),c(-1/3,-1/3),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[2],mx[3]),c(my[2],my[3]),c(-1/3,-1/3),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[3],mx[1]),c(my[3],my[1]),c(-1/3,-1/3),col=rgb(0,0,0),lwd=1)

#アニメーション
movie3d(spin3d(axis=c(0,0,1),rpm=5),duration=10,fps=25,movie="~/Desktop/Tetrahedron05")
```

②全体像を俯瞰すると「(<font color="blue">外接円上に全ての頂点が存在する</font>)**正三角形**(<font color="blue">Equilateral triangles</font>)<font color="green">２枚</font><font color="green">の間の</font>**補完操作**(<font color="blue">Completion Operation</font>)<font color="red">によって生じる</font>」という考え方も出来る(<font color="blue">とりあえず不可逆的過程と考える</font>)。
![Pretetrahedron01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/8a258272-0384-e4bb-d8f3-e19e296c5db5.gif)

```R
library(rgl)
#分割数Nod(Number of divide)=3
NoD<-3
#円周分割数列(Sequence of Divided Circumference)
SoDC<-seq(0,2*pi,length=NoD+1)

#原蹠(PorTal)
portal_i<-0
portal_j<-0
portal_k<-1
portal_text=paste0("PT(",portal_i,",",portal_j,",",portal_k,")")

#原蹠表示
texts3d(portal_i,portal_j,portal_k,texts=portal_text,col=rgb(0,0,0),adj=1.0)

#対蹠(AntiPordal)
antipordal_i<-0
antipordal_j<-0
antipordal_k<--1
antipordal_text=paste0("AP(",antipordal_i,",",antipordal_j,",",antipordal_k,")" main="Cross section for ")

#対蹠表示
texts3d(antipordal_i,antipordal_j,antipordal_k,texts=antipordal_text,col=rgb(0,0,0),adj=1.0)

#立方対角線(Cubic Diagonal)
lines3d(c(portal_i,antipordal_i),c(portal_j,antipordal_j),c(portal_k,antipordal_k),col=rgb(1,0,0),lwd=2)

#正三角形描画
mx<-cos(SoDC)*sin(pi/3)
my<-sin(SoDC)*sin(pi/3)

#正四面体描画
mx<-cos(SoDC)*sin(pi/3)
my<-sin(SoDC)*sin(pi/3)

lines3d(c(portal_i,mx[1]),c(portal_j,my[1]),c(portal_k,-1/3),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[2]),c(portal_j,my[2]),c(portal_k,-1/3),col=rgb(0,0,0),lwd=1)
#lines3d(c(portal_i,mx[3]),c(portal_j,my[3]),c(portal_k,-1/3),col=rgb(0,0,0),lwd=1)

lines3d(c(mx[1],mx[2]),c(my[1],my[2]),c(-1/3,-1/3),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[2],mx[3]),c(my[2],my[3]),c(-1/3,-1/3),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[3],mx[1]),c(my[3],my[1]),c(-1/3,-1/3),col=rgb(0,0,0),lwd=1)

#アニメーション
movie3d(spin3d(axis=c(0,0,1),rpm=5),duration=10,fps=25,movie="~/Desktop/Pretetrahedron01")
```

③**正四面体**は（<font color="blue">特定の辺数が伸びる</font>）**頂点**と（<font color="blue">同数の辺数を備える</font>）**面**を交換する**双対変換**(<font color="blue">Dual Transformation</font>)操作の結果が同じ正四面体となる**自己双対**(<font color="blue">Self Dual</font>)図形でもあり、これにより原蹠を起点とする正四面体と対蹠を起点とする正四面体の峻別がさらに困難となる。
![Tetrahedron06.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/f8e92d0f-61ab-1113-01c3-16d246c75a10.gif)

```R
library(rgl)
#分割数Nod(Number of divide)=3
NoD<-3
#円周分割数列(Sequence of Divided Circumference)
SoDC<-seq(0,2*pi,length=NoD+1)

#原蹠(PorTal)
portal_i<-0
portal_j<-0
portal_k<-1
portal_text=paste0("PT(",portal_i,",",portal_j,",",portal_k,")")

#原蹠表示
texts3d(portal_i,portal_j,portal_k,texts=portal_text,col=rgb(0,0,0),adj=1.0)

#対蹠(AntiPordal)
antipordal_i<-0
antipordal_j<-0
antipordal_k<--1
antipordal_text=paste0("AP(",antipordal_i,",",antipordal_j,",",antipordal_k,")" main="Cross section for ")

#対蹠表示
texts3d(antipordal_i,antipordal_j,antipordal_k,texts=antipordal_text,col=rgb(0,0,0),adj=1.0)

#立方対角線(Cubic Diagonal)
lines3d(c(portal_i,antipordal_i),c(portal_j,antipordal_j),c(portal_k,antipordal_k),col=rgb(1,0,0),lwd=2)

#正四面体描画
mx<-cos(SoDC)*sin(pi/3)
my<-sin(SoDC)*sin(pi/3)

lines3d(c(antipordal_i,mx[1]),c(antipordal_j,my[1]),c(antipordal_k,1/3),col=rgb(0,0,0),lwd=1)
lines3d(c(antipordal_i,mx[2]),c(antipordal_j,my[2]),c(antipordal_k,1/3),col=rgb(0,0,0),lwd=1)
lines3d(c(antipordal_i,mx[3]),c(antipordal_j,my[3]),c(antipordal_k,1/3),col=rgb(0,0,0),lwd=1)

lines3d(c(mx[1],mx[2]),c(my[1],my[2]),c(1/3,1/3),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[2],mx[3]),c(my[2],my[3]),c(1/3,1/3),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[3],mx[1]),c(my[3],my[1]),c(1/3,1/3),col=rgb(0,0,0),lwd=1)

#アニメーション
movie3d(spin3d(axis=c(0,0,1),rpm=5),duration=10,fps=25,movie="~/Desktop/Tetrahedron06")
```
④正多面体唯一の奇数系として「(<font color="blue">原蹠と対蹠を直接結ばない図形が</font>)**二つ対で観測される**」のが当然視される状況下にある。単位円上の共益複素数が２つセットで観測される事などとも密接に関係してくる展開。
[【Rで球面幾何学】正四面体と正六面体と正八面体の連続性と「テトラパックの思わぬ正体」について。](https://qiita.com/ochimusha01/items/3356f7c805917660632c)
![20200207044808.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/fe7a0a07-fc3f-c8fc-418b-ef57c8d8438e.gif)

⑤そして、かかる状況下において突如として**三次元存在条件**を満たした（<font color="blue">断面を一つでなく二つ備えた</font>)**立方体**が顕現してくる訳である。
[【Rで球面幾何学】正方形における平方対角線(Square diagonal)と立方体における立方対角線(Cubic diagonal)の関係について。](https://qiita.com/ochimusha01/items/9d899779ff8e814beb41)
![square002.gif](https://camo.qiitausercontent.com/d22d8f6d1ec3e22c3b97c0bd315c47cb9f2130be/68747470733a2f2f71696974612d757365722d636f6e74656e74732e696d6769782e6e65742f687474707325334125324625324663646e2d616b2e662e73742d686174656e612e636f6d253246696d61676573253246666f746f6c6966652532466f2532466f6368696d757368613031253246323032303131323125324632303230313132313232333032322e6769663f69786c69623d72622d312e322e32266175746f3d666f726d6174266769662d713d363026713d373526773d31343030266669743d6d617826733d3366333130356661323837303932383235623339623735666137613336663231)

⑥さらには断面を三つ備えた正十二面体も正四面体を第一層とする形で構成される。
[【Rで球面幾何学】正六面体と正十二面体の間の往復(「屋根掛け法」とは何か？)](https://qiita.com/ochimusha01/items/37e73f243a0b2f2cba9d)
![Rplot25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/bbaeb08a-31a7-08f0-f8a3-4f0b9fcfe4a3.png)
![cube_in_dodecahedron19.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210125/20210125161856.gif)

⑦こうした「**2個か1個か**」問題は、さらに「(<font color="blue">正方形とその縦方向と横方向の180度回転しか存在しない</font>)**クラインの四元群**(<font color="blue">Klein's Quaternion Qroup</font>)」問題まで巻き込む展開を迎える。
[【Rで球面幾何学】平方眼と立方眼の小宇宙(Square & Cube Grid Set)について。](https://qiita.com/ochimusha01/items/7347d2c004846df2fec5)

例えばこの数理体系においては<font color="green">p^2=q^2=r^2=e</font>とされるが、さてその時到達するeは出発点たる原蹠なのだろうか？　それとも対蹠なのだろうか？
[クラインの四元群](http://hooktail.sub.jp/algebra/KleinQuaternion/)

<!-- html table generated in R 3.5.2 by xtable 1.8-4 package -->
<!-- Sat Apr 18 05:32:31 2020 -->
<table border=1>
<tr> <th>  </th> <th> e </th> <th> p </th> <th> q </th> <th> r </th>  </tr>
  <tr> <td align="right"> e </td> <td> e </td> <td> p </td> <td> q </td> <td> r </td> </tr>
  <tr> <td align="right"> p </td> <td> p </td> <td> e </td> <td> r </td> <td> q </td> </tr>
  <tr> <td align="right"> q </td> <td> q </td> <td> r </td> <td> e </td> <td> p </td> </tr>
  <tr> <td align="right"> r </td> <td> r </td> <td> q </td> <td> p </td> <td> e </td> </tr>
   </table>

- **操作"<font color="green">e</font>"**…何もしない(<font color="blue">何もしなかったのと同様の結果</font>)。
- **操作"<font color="green">p</font>"**…X軸に沿って180度裏返す(<font color="blue">その操作が行われたのと同様の結果</font>)。
- **操作"<font color="green">q</font>"**…Y軸に沿って180度裏返す(<font color="blue">その操作が行われたのと同様の結果</font>)。
- **操作"<font color="green">r</font>"**…Z軸に沿って180度裏返す(<font color="blue">その操作が行われたのと同様の結果</font>)。

![Tetrahedron07.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/9622164b-5cf0-5b1b-601f-3f09cd0d7380.gif)

```R
library(rgl)
#分割数Nod(Number of divide)=3
NoD<-3
#円周分割数列(Sequence of Divided Circumference)
SoDC<-seq(0,2*pi,length=NoD+1)

#原蹠(PorTal)
portal_i<-0
portal_j<-0
portal_k<-1
portal_text=paste0("PT(",portal_i,",",portal_j,",",portal_k,")")

#原蹠表示
texts3d(portal_i,portal_j,portal_k,texts=portal_text,col=rgb(0,0,0),adj=1.0)

#対蹠(AntiPordal)
antipordal_i<-0
antipordal_j<-0
antipordal_k<--1
antipordal_text=paste0("AP(",antipordal_i,",",antipordal_j,",",antipordal_k,")" main="Cross section for ")

#対蹠表示
texts3d(antipordal_i,antipordal_j,antipordal_k,texts=antipordal_text,col=rgb(0,0,0),adj=1.0)

#立方対角線(Cubic Diagonal)
lines3d(c(portal_i,antipordal_i),c(portal_j,antipordal_j),c(portal_k,antipordal_k),col=rgb(1,0,0),lwd=2)

#正四面体描画
mx<-cos(SoDC)
my<-sin(SoDC)

lines3d(c(portal_i,mx[1]),c(portal_j,my[1]),c(portal_k,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[2]),c(portal_j,my[2]),c(portal_k,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[3]),c(portal_j,my[3]),c(portal_k,0),col=rgb(0,0,0),lwd=1)

lines3d(c(mx[1],mx[2]),c(my[1],my[2]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[2],mx[3]),c(my[2],my[3]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[3],mx[1]),c(my[3],my[1]),c(0,0),col=rgb(0,0,0),lwd=1)

lines3d(c(mx[1],antipordal_i),c(my[1],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[2],antipordal_i),c(my[2],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[3],antipordal_i),c(my[3],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)

#アニメーション
movie3d(spin3d(axis=c(0,0,1),rpm=5),duration=10,fps=25,movie="~/Desktop/Tetrahedron07")
```
#正八面体(<font color="blue">Regular Octahedron</font>)の導入(<font color="blue">Introduction</font>)
断面上にあと１個頂点を追加すると原蹠から対蹠に直角に１回曲がって到達する経路を三方向から備えた偶数系の図形が顕現します。
![Octahedron02.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210125/20210125144954.gif)

```R
library(rgl)
#分割数Nod(Number of divide)=4
NoD<-4
#円周分割数列(Sequence of Divided Circumference)
SoDC<-seq(0,2*pi,length=NoD+1)

#原蹠(PorTal)
portal_i<-0
portal_j<-0
portal_k<-1
portal_text=paste0("AP(",portal_i,",",portal_j,",",portal_k,")")

#原蹠表示
texts3d(portal_i,portal_j,portal_k,texts=portal_text,col=rgb(0,0,0),adj=1.0)

#対蹠(AntiPordal)
antipordal_i<-0
antipordal_j<-0
antipordal_k<--1
antipordal_text=paste0("AP(",antipordal_i,",",antipordal_j,",",antipordal_k,")")

#対蹠表示
texts3d(antipordal_i,antipordal_j,antipordal_k,texts=antipordal_text,col=rgb(0,0,0),adj=1.0)

#立方対角線(Cubic Diagonal)
lines3d(c(portal_i,antipordal_i),c(portal_j,antipordal_j),c(portal_k,antipordal_k),col=rgb(1,0,0),lwd=2)

#正八面体描画
mx<-cos(SoDC)
my<-sin(SoDC)

lines3d(c(portal_i,mx[1]),c(portal_j,my[1]),c(portal_k,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[2]),c(portal_j,my[2]),c(portal_k,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[3]),c(portal_j,my[3]),c(portal_k,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[4]),c(portal_j,my[4]),c(portal_k,0),col=rgb(0,0,0),lwd=1)

lines3d(c(mx[1],mx[2]),c(my[1],my[2]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[2],mx[3]),c(my[2],my[3]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[3],mx[4]),c(my[3],my[4]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[4],mx[1]),c(my[4],my[1]),c(0,0),col=rgb(0,0,0),lwd=1)

lines3d(c(mx[1],antipordal_i),c(my[1],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[2],antipordal_i),c(my[2],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[3],antipordal_i),c(my[3],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[4],antipordal_i),c(my[4],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)

#追加立方対角線(Cubic Diagonal)

ap11_text=paste0("AP(",round(mx[1]),",",round(my[1]),",","0",")")
texts3d(mx[1],my[1],0,texts=ap11_text,col=rgb(0,0,0),adj=1.0)
ap12_text=paste0("AP(",round(mx[3]),",",round(my[3]),",","0",")")
texts3d(mx[3],my[3],0,texts=ap12_text,col=rgb(0,0,0),adj=1.0)
lines3d(c(mx[1],mx[3]),c(my[1],my[3]),c(0,0),col=rgb(1,0,0),lwd=2)

ap21_text=paste0("AP(",round(mx[2]),",",round(my[2]),",","0",")")
texts3d(mx[2],my[2],0,texts=ap21_text,col=rgb(0,0,0),adj=1.0)
ap22_text=paste0("AP(",round(mx[4]),",",round(my[4]),",","0",")")
texts3d(mx[4],my[4],0,texts=ap22_text,col=rgb(0,0,0),adj=1.0)
lines3d(c(mx[2],mx[4]),c(my[2],my[4]),c(0,0),col=rgb(1,0,0),lwd=2)

#アニメーション
movie3d(spin3d(axis=c(0,0,1),rpm=5),duration=10,fps=25,movie="~/Desktop/Octahedron02")
```
①ここで現れる**正方形**(<font color="blue">Square</font>)は偶数形図形なので単独で顕現。それ自体が対蹠間を結ぶ線を２本備えている。
![Rplot21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/62b30119-db8b-a18a-6e58-b8cce11f28cc.png)

```R
#分割数Nod(Number of divide)=4

NoD<-4
#円周分割数列(Sequence of Divided Circumference)
SoDC<-seq(0,2*pi,length=NoD+1)
#円周上の四角形の頂点を集める。
cx_nomal=cos(SoDC)
cy_nomal=sin(SoDC)

#グラフ描画
plot(cx_nomal,cy_nomal,asp=1,col=rgb(0,0,1),type="l",xlim=c(-1,1),ylim=c(-1,1),main="Square",xlab="Cos(θ)",ylab="Sin(θ)",lwd=1.2)

#背景円の塗り潰し
Circumference<-seq(0,2*pi,length=60)
cx_circle=cos(Circumference)
cy_circle=sin(Circumference)
polygon(cx_circle, #x
cy_circle, #y
density=c(30), #塗りつぶす濃度
angle=c(45),　 　　　#塗りつぶす斜線の角度
col=c(200,200,200)) 　#塗りつぶす色

#文字追加
text(cx_nomal,cy_nomal, labels=c("a","b","c","d"),col=rgb(0,0,1))

#補助線
segments(1,0,-1,0,lty=3,col=rgb(0,0,0))
segments(0,1,0,-1,lty=3,col=rgb(0,0,0))
```

②**正八面体**は**正四面体**の補完を受けて空間充填する(<font color="blue">両者の間にはこれ以外にももっと様々な関係が潜在していそうである</font>)。また**正八面体**は**立方体**と双対の関係にあるがこの操作の結果現れる**立方体**は(<font color="blue">正四面体２つが直接融合して生まれる「四元数的」立方体と異なり</font>)全ての辺がX軸、Y軸、Z軸に沿うか平方対角線を成す形で顕現する。
[【Rで球面幾何学】正四面体と正六面体と正八面体の連続性と「テトラパックの思わぬ正体」について。](https://qiita.com/ochimusha01/items/3356f7c805917660632c)
![triangles004.gif](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fo%2Fochimusha01%2F20201129%2F20201129055848.gif?ixlib=rb-1.2.2&auto=format&gif-q=60&q=75&s=8aaababc6b4f244b6086ae1fe5f1bdc1)

#正二十面体(<font color="blue">Regular Icosahedron</font>)の頭蹠(<font color="blue">Portal</font>)
(<font color="blue">既に頭蹠と対蹠を結ぶ線が1本通っているので</font>)断面上にあと１個頂点を追加しても図形全体が奇数系に戻る事はありません。
![Tetrahedron11.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/71dd5145-abba-20e5-36b5-95a231c79282.gif)

```R
library(rgl)
#分割数Nod(Number of divide)=5
NoD<-5
#円周分割数列(Sequence of Divided Circumference)
SoDC<-seq(0,2*pi,length=NoD+1)

#原蹠(PorTal)
portal_i<-0
portal_j<-0
portal_k<-1
portal_text=paste0("PT(",portal_i,",",portal_j,",",portal_k,")")

#原蹠表示
texts3d(portal_i,portal_j,portal_k,texts=portal_text,col=rgb(0,0,0),adj=1.0)

#対蹠(AntiPordal)
antipordal_i<-0
antipordal_j<-0
antipordal_k<--1
antipordal_text=paste0("AP(",antipordal_i,",",antipordal_j,",",antipordal_k,")" main="Cross section for ")

#対蹠表示
texts3d(antipordal_i,antipordal_j,antipordal_k,texts=antipordal_text,col=rgb(0,0,0),adj=1.0)

#立方対角線(Cubic Diagonal)
lines3d(c(portal_i,antipordal_i),c(portal_j,antipordal_j),c(portal_k,antipordal_k),col=rgb(1,0,0),lwd=2)

#正四面体描画
mx<-cos(SoDC)
my<-sin(SoDC)

lines3d(c(portal_i,mx[1]),c(portal_j,my[1]),c(portal_k,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[2]),c(portal_j,my[2]),c(portal_k,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[3]),c(portal_j,my[3]),c(portal_k,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[4]),c(portal_j,my[4]),c(portal_k,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[5]),c(portal_j,my[5]),c(portal_k,0),col=rgb(0,0,0),lwd=1)

lines3d(c(mx[1],mx[2]),c(my[1],my[2]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[2],mx[3]),c(my[2],my[3]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[3],mx[4]),c(my[3],my[4]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[4],mx[5]),c(my[4],my[5]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[5],mx[1]),c(my[5],my[1]),c(0,0),col=rgb(0,0,0),lwd=1)

lines3d(c(mx[1],antipordal_i),c(my[1],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[2],antipordal_i),c(my[2],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[3],antipordal_i),c(my[3],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[4],antipordal_i),c(my[4],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[5],antipordal_i),c(my[5],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)

#アニメーション
movie3d(spin3d(axis=c(0,0,1),rpm=5),duration=10,fps=25,movie="~/Desktop/Octahedron01")
```
①ここで現れる**正五角形**(<font color="blue">Regular Pentagon</font>)は奇数形図形なのでそれぞれ原蹠から出発し対蹠に届いてない状態の一対として顕現。
![Rplot19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/1e36492f-10d2-84a3-0526-6aea1d1ff60b.png)

```R
#分割数Nod(Number of divide)=5

NoD<-5
#円周分割数列(Sequence of Divided Circumference)
SoDC<-seq(0,2*pi,length=NoD+1)
#円周上の五角形の頂点を集める。
cx_nomal=cos(SoDC)
cy_nomal=sin(SoDC)
cx_reverse=cos(SoDC+pi)
cy_reverse=sin(SoDC+pi)
#グラフ描画
plot(cx_nomal,cy_nomal,asp=1,col=rgb(0,0,1),type="l",xlim=c(-1,1),ylim=c(-1,1),main="Regular Pentagon",xlab="Cos(θ)",ylab="Sin(θ)",lwd=1.2)
par(new=T)
plot(cx_reverse,cy_reverse,asp=1,col=rgb(1,0,0),type="l",xlim=c(-1,1),ylim=c(-1,1),main="",xlab="",ylab="",lwd=1.2)
#背景円の塗り潰し
Circumference<-seq(0,2*pi,length=60)
cx_circle=cos(Circumference)
cy_circle=sin(Circumference)
polygon(cx_circle, #x
cy_circle, #y
density=c(30), #塗りつぶす濃度
angle=c(45),　 　　　#塗りつぶす斜線の角度
col=c(200,200,200)) 　#塗りつぶす色

#文字追加
text(cx_nomal,cy_nomal, labels=c("a","b","c","d","e"),col=rgb(0,0,1))
text(cx_reverse,cy_reverse, labels=c("a","b","c","d","e"),col=rgb(1,0,0))
#補助線
segments(1,0,-1,0,lty=3,col=rgb(0,0,0))
```
②この形は**オイラーの多面体定理**(<font color="blue">Euler's Polyhedron Theorem</font>)<font color="green">Vertex(頂点数)-Edge(辺数)+Face(面数)=2</font>展開上における「(<font color="green">立方体同様に断面を２つ備える</font>)**正二十面体形成の頭蹠**」となる。
[【Rで球面幾何学】オイラーの多面体定理(Euler's Polyhedron Theorem)と平面充填(Tiling)の連続性について。](https://qiita.com/ochimusha01/items/24a4b51b2c23c47d6aff)

>**オイラーの多面体定理の証明方法**…ある頂点か面を選んで**始端**とし、これに隣接する面を段階的に除去していくと最後にただ一つの**終端**として頂点か面が残る。要するに<font color="green">2</font>とは最後に残る**始端**と**終端**の事である。
>
>逆をいえば、ある頂点か面を選んで**始端**とし、これから出発する辺や面を段階的に積み上げていって最後にただ一つの**終端**に到達すればそこに多角形が顕現する事になる。

[【Rで球面幾何学】正20面体(Regular Icosahedron)の作図について。](https://qiita.com/ochimusha01/items/d57b6dfb1114766c8eb9)
![icosahedron009.gif](https://cdn-ak.f.st-hatena.com/images/fotolife/o/ochimusha01/20210125/20210125162938.gif)

#到達点としてのただの正六角形(<font color="blue">Regular Hexagon</font>)
断面上にあと一個頂点を追加しても、やはり意味ある立体図形には発展しません。ただし…
![Tetrahedron13.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/73572fd8-c4cb-3346-ef9c-5fd19359afec.gif)

```R
library(rgl)
#分割数Nod(Number of divide)=6
NoD<-6
#円周分割数列(Sequence of Divided Circumference)
SoDC<-seq(0,2*pi,length=NoD+1)

#原蹠(PorTal)
portal_i<-0
portal_j<-0
portal_k<-1
portal_text=paste0("PT(",portal_i,",",portal_j,",",portal_k,")")

#原蹠表示
texts3d(portal_i,portal_j,portal_k,texts=portal_text,col=rgb(0,0,0),adj=1.0)

#対蹠(AntiPordal)
antipordal_i<-0
antipordal_j<-0
antipordal_k<--1
antipordal_text=paste0("AP(",antipordal_i,",",antipordal_j,",",antipordal_k,")" main="Cross section for ")

#対蹠表示
texts3d(antipordal_i,antipordal_j,antipordal_k,texts=antipordal_text,col=rgb(0,0,0),adj=1.0)

#立方対角線(Cubic Diagonal)
lines3d(c(portal_i,antipordal_i),c(portal_j,antipordal_j),c(portal_k,antipordal_k),col=rgb(1,0,0),lwd=2)

#正四面体描画
mx<-cos(SoDC)
my<-sin(SoDC)

lines3d(c(portal_i,mx[1]),c(portal_j,my[1]),c(portal_k,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[2]),c(portal_j,my[2]),c(portal_k,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[3]),c(portal_j,my[3]),c(portal_k,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[4]),c(portal_j,my[4]),c(portal_k,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[5]),c(portal_j,my[5]),c(portal_k,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[6]),c(portal_j,my[6]),c(portal_k,0),col=rgb(0,0,0),lwd=1)

lines3d(c(mx[1],mx[2]),c(my[1],my[2]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[2],mx[3]),c(my[2],my[3]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[3],mx[4]),c(my[3],my[4]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[4],mx[5]),c(my[4],my[5]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[5],mx[6]),c(my[5],my[6]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[6],mx[1]),c(my[6],my[1]),c(0,0),col=rgb(0,0,0),lwd=1)

lines3d(c(mx[1],antipordal_i),c(my[1],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[2],antipordal_i),c(my[2],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[3],antipordal_i),c(my[3],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[4],antipordal_i),c(my[4],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[5],antipordal_i),c(my[5],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[6],antipordal_i),c(my[6],antipordal_j),c(0,antipordal_k),col=rgb(0,0,0),lwd=1)

#アニメーション
movie3d(spin3d(axis=c(0,0,1),rpm=5),duration=10,fps=25,movie="~/Desktop/Tetrahedron13")
```

①ここで現れる**正六角形**(<font color="blue">Regular Hexagon</font>)は偶数系図形なので単独で顕現。それ自体が対蹠間を結ぶ線を3本備える。
![Rplot22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/65f5aa77-620b-eaa0-20e4-4b29789f3394.png)

```R
#分割数Nod(Number of divide)=6
NoD<-6
#円周分割数列(Sequence of Divided Circumference)
SoDC<-seq(0,2*pi,length=NoD+1)
#円周上の四角形の頂点を集める。
cx_nomal=cos(SoDC)
cy_nomal=sin(SoDC)

#グラフ描画
plot(cx_nomal,cy_nomal,asp=1,col=rgb(0,0,1),type="l",xlim=c(-1,1),ylim=c(-1,1),main="Regular Hexagon",xlab="Cos(θ)",ylab="Sin(θ)",lwd=1.2)

#背景円の塗り潰し
Circumference<-seq(0,2*pi,length=60)
cx_circle=cos(Circumference)
cy_circle=sin(Circumference)
polygon(cx_circle, #x
cy_circle, #y
density=c(30), #塗りつぶす濃度
angle=c(45),　 　　　#塗りつぶす斜線の角度
col=c(200,200,200)) 　#塗りつぶす色

#文字追加
text(cx_nomal,cy_nomal, labels=c("a","b","c","d","e","f"),col=rgb(0,0,1))

#補助線
segments(1,0,-1,0,lty=3,col=rgb(0,0,0))
segments(cx_nomal[2],cy_nomal[2],cx_nomal[5],cy_nomal[5],lty=3,col=rgb(0,0,0))
segments(cx_nomal[3],cy_nomal[3],cx_nomal[6],cy_nomal[6],lty=3,col=rgb(0,0,0))
```

②実際にはむしろ、内角を合わせると丁度<font color="green">360度</font>(<font color="blue">2πラジアン</font>)となる**正三角形六個の組み合わせ**の顕現によって「<font color="red">原蹠=対蹠</font>」の図式が成立する事は、両者の峻別を出発点とする**球面幾何学**(<font color="blue">Spherical geometry</font>)が末端、すなわちある種の極限状態に到達したと考えるべきかもしれない。なので以降のこの系の断面への頂点追加はもはや立体的展開を伴わなくなる訳である。

![Tetrahedron14.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/1523b894-3fbd-a170-cf77-6bf74dd44762.gif)

```R
library(rgl)
#分割数Nod(Number of divide)=6
NoD<-6
#円周分割数列(Sequence of Divided Circumference)
SoDC<-seq(0,2*pi,length=NoD+1)

#原蹠(PorTal)
portal_i<-0
portal_j<-0
portal_k<-1
portal_text=paste0("PT(",portal_i,",",portal_j,",",portal_k,")")

#原蹠表示
texts3d(portal_i,portal_j,portal_k,texts=portal_text,col=rgb(0,0,0),adj=1.0)

#対蹠(AntiPordal)
antipordal_i<-0
antipordal_j<-0
antipordal_k<--1
antipordal_text=paste0("AP(",antipordal_i,",",antipordal_j,",",antipordal_k,")" main="Cross section for ")

#対蹠表示
texts3d(antipordal_i,antipordal_j,antipordal_k,texts=antipordal_text,col=rgb(0,0,0),adj=1.0)

#立方対角線(Cubic Diagonal)
lines3d(c(portal_i,antipordal_i),c(portal_j,antipordal_j),c(portal_k,antipordal_k),col=rgb(1,0,0),lwd=2)

#正四面体描画
mx<-cos(SoDC)
my<-sin(SoDC)

lines3d(c(portal_i,mx[1]),c(portal_j,my[1]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[2]),c(portal_j,my[2]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[3]),c(portal_j,my[3]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[4]),c(portal_j,my[4]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[5]),c(portal_j,my[5]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(portal_i,mx[6]),c(portal_j,my[6]),c(0,0),col=rgb(0,0,0),lwd=1)

lines3d(c(mx[1],mx[2]),c(my[1],my[2]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[2],mx[3]),c(my[2],my[3]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[3],mx[4]),c(my[3],my[4]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[4],mx[5]),c(my[4],my[5]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[5],mx[6]),c(my[5],my[6]),c(0,0),col=rgb(0,0,0),lwd=1)
lines3d(c(mx[6],mx[1]),c(my[6],my[1]),c(0,0),col=rgb(0,0,0),lwd=1)

#アニメーション
movie3d(spin3d(axis=c(0,0,1),rpm=5),duration=10,fps=25,movie="~/Desktop/Tetrahedron14")
```
とりあえずは以下続報…