【Rで球面幾何学】平方眼と立方眼の小宇宙(Square & Cube Grid Set)について。

[平面充填 - Wikipedia](https://ja.wikipedia.org/wiki/%E5%B9%B3%E9%9D%A2%E5%85%85%E5%A1%AB)

>1種類で平面を充填できる正多角形は、**正三角形**(<font color="blue">Equilateral Triangle</font>)、**正方形**(<font color="blue">Square</font>)、**正六角形**(<font color="blue">Hexagon</font>)の3種類のみであり、ピュタゴラスによって証明された。これらは**正平面充填形** (<font color="blue">Regular Tessellation</font>) とも呼ばれる。
>ちなみに**正方形**は平面上における（<font color="blue">特定の辺数が伸びる</font>）**頂点**と（<font color="blue">同数の辺数を備える</font>）面を交換する**双対変換**(<font color="blue">Dual Transformation</font>)操作の結果が同じ正方形になる**自己双対**(<font color="blue">Self Dual</font>)であり、**正三角形**は同様の操作により**正六角形**と**双対**(<font color="blue">Duality</font>)の関係にある。平面充填はこの範囲において可能と考えて良い。

ここでいう「<font color="red">正方形は頂点と面を交換する双対変換操作の結果が同じ正方形になる自己双対形であり、どちらも平面充当性を備えている</font>」とは、要するにこういう事です（<font color="green">自明の理の範囲内</font>）。

<font color="green">正方形による平面充填</font>（<font color="blue">頂点を基点とした場合</font>）
![Rplot16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/3e1e9f75-fb84-4eb3-bba6-6dfcc7cf5cd8.png)

```R
#Tiling(Plane Filling) by Square(From Vertex) 
cx=c(-2,2,2,-2,-2)
cy=c(-2,-2,2,2,-2)
plot(cx,cy,type="l",asp=1,xlim=c(-3,3),ylim=c(-3,3),col=rgb(0,0,1),lwd=2, main="Tiling by Square(From Vertex)",xlab="X axis",ylab="Y axis")

lines(c(-2,2), c(0,0),col=rgb(0,0,1),lwd=2)
lines(c(0,0), c(-2,2),col=rgb(0,0,1),lwd=2)                        

#方眼(Square Grid)
for (i in -5:5) {
abline(h = i,col=c(200,200,200))
abline(v = i,col=c(200,200,200))
 }                             
```

<font color="green">正方形による平面充填</font>（<font color="blue">面を基点とした場合</font>）
![Rplot17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/93b4d44f-47d8-b228-3316-279210cc715a.png)

```R
#Tiling(Plane Filling) by Square(From Face) 
cx=c(-3,3,3,-3,-3)
cy=c(-3,-3,3,3,-3)
plot(cx,cy,type="l",asp=1,xlim=c(-3,3),ylim=c(-3,3),col=rgb(0,0,1),lwd=2, main="Tiling by Square(From Face)",xlab="X axis",ylab="Y axis")

lines(c(-3,3), c(-1,-1),col=rgb(0,0,1),lwd=2)
lines(c(-3,3), c(1,1),col=rgb(0,0,1),lwd=2)
lines(c(-1,-1), c(-3,3),col=rgb(0,0,1),lwd=2)                        
lines(c(1,1), c(-3,3),col=rgb(0,0,1),lwd=2)                        

#方眼(Square Grid)
for (i in -5:5) {
abline(h = i,col=c(200,200,200))
abline(v = i,col=c(200,200,200))
 }                             
```

また、ここでいう「<font color="red">正三角形と正六角形は、頂点と面を交換する双対変換操作によって互いに変換される双対関係にあり、どちらも平面充当性を備えている</font>」とは、要するにこういう事です（<font color="green">自明の理の範囲内</font>）。

<font color="green">正三角形による平面充填</font>（<font color="blue">頂点を基点とした場合</font>）
![Rplot15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/5c7dc814-99d0-46a5-1ae8-d11bc8d75028.png)

```R
#Tiling(Plane Filling) by Equilateral triangle(From Vertex) 
cx=c(-2,-1,1,2,1,-1,-2)
cy=c(0,2,2,0,-2,-2,0)
plot(cx,cy,type="l",asp=1,xlim=c(-2,2),ylim=c(-2,2),col=rgb(0,0,1),lwd=2, main="Tiling by Equilateral triangle(From Vertex)",xlab="X axis",ylab="Y axis")

lines(c(-1,1), c(-2,2),col=rgb(0,0,1),lwd=2)
lines(c(-1,1), c(2,-2),col=rgb(0,0,1),lwd=2)                        
lines(c(-2,2), c(0,0),col=rgb(0,0,1),lwd=2)                        

#方眼(Square Grid)
for (i in -5:5) {
abline(h = i,col=c(200,200,200))
abline(v = i,col=c(200,200,200))
 }                             
```

<font color="green">正三角形による平面充填</font>（<font color="blue">面を基点とした場合</font>）
![Rplot18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/787c7b61-8ad4-e43b-cb07-625331c2ecf0.png)

```R
#Tiling(Plane Filling) by Equilateral triangle(From Face) 
cx=c(-2,2,0,-2)
cy=c(1,1,-3,1)
plot(cx,cy,type="l",asp=1,xlim=c(-2,2),ylim=c(-3,1),col=rgb(0,0,1),lwd=2, main="Tiling by  Equilateral triangle(From Face)",xlab="X axis",ylab="Y axis")

lines(c(-1,0), c(-1,1),col=rgb(0,0,1),lwd=2)
lines(c(0,1), c(1,-1),col=rgb(0,0,1),lwd=2)
lines(c(-1,1), c(-1,-1),col=rgb(0,0,1),lwd=2)                        

#方眼(Square Grid)
for (i in -5:5) {
abline(h = i,col=c(200,200,200))
abline(v = i,col=c(200,200,200))
 }                             
```

ところで「<font color="red">正</font><font color="green">p</font><font color="red">角形における頂点に集まる辺数</font><font color="green">q</font><font color="red">個</font>」に注目した**シュレーフリ記号**<font color="green">{p,q}</font>でそれぞれの正多角形を表すと以下となります。

- **正三角形**<font color="green">{3,6}</font> 
- **正方形**<font color="green">{4,4}</font> 
- **正六角形**<font color="green">{6,3}</font> 

そして**正**<font color="green">p</font>**角形**の内角を<font color="green">q</font>**倍**すると<font color="green">360°</font>(<font color="blue">2πラジアン</font>)になることから、<font color="green">(p-2)q=2p</font>となり、この事からも1種類の正多角形による充填がこの範囲でしか存在しない事が証明出来るとされています（<font color="green">自明の理の範囲内</font>）。

```R
#正三角形{3,6}…ある頂点を中心に正三角形を６個並べると平面充填する。
> (3-2)*6
[1] 6
> 2*3
[1] 6
> 
#正方形 {4,4}…正方形を中心に同じ正方形を8個並べると平面充填し自己相似図形となる。
> (4-2)*4
[1] 8
> 2*4
[1] 8
> 
#正六角形 {6, 3}…正六角形を中心に正六角形を６個並べると平面充填する。
> (6-2)*3
[1] 12
> 2*6
[1] 12
```

あれ？「<font color="red">ある頂点を中心に正方形を4個並べると平面充填して自己相似図形となる場合</font>」や「<font color="red">正三角形を中心に同じ正三角形を3個並べると平面充填して自己相似図形となる場合</font>」どこいった？　そして突然現れた<font color="green">２</font>なる数字、もしや**オイラーの多面体定理**(<font color="blue">Euler's Polyhedron Theorem</font>)にも現れる「<font color="red">頭蹠と対蹠のセット</font>」なのでは？
[【Rで球面幾何学】オイラーの多面体定理(Euler's Polyhedron Theorem)と平面充填(Tiling)の連続性について。](https://qiita.com/ochimusha01/items/24a4b51b2c23c47d6aff)

①そう「<font color="red">8個で空間を充填する図形</font>」といえば、単独で**空間充填**（<font color="blue">Space Filling</font>）条件を満たす唯一の正多面体にして「(<font color="blue">「右手系」/「左手系」の意味で</font>)<font color="green">左右に1回ずつ直角に曲がると原蹠から対蹠に到達する</font>」**正六面体**(<font color="blue">Regular Hexahedron</font>/<font color="blue">Cube</font>)なのである。これ自体は「<font color="red">各頂点から3辺が伸びる図形</font>」であり、その各面の**平方対角線**(<font color="blue">Square Diagonal</font>)は<font color="green">sqrt(2)</font>で**立方対角線**(<font color="blue">Cube Diagonal</font>)は<font color="green">sqrt(3)</font>となる。あれ、頂点から伸びる辺が１本足りないぞ？
[【Rで球面幾何学】正方形における平方対角線(Square diagonal)と立方体における立方対角線(Cubic diagonal)の関係について。](https://qiita.com/ochimusha01/items/9d899779ff8e814beb41)
![square002.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/f0f13c68-6fe1-495b-d0fb-0c5c4f3a292d.gif)

<!-- html table generated in R 3.5.2 by xtable 1.8-4 package -->
<!-- Sat Apr  4 06:36:35 2020 -->
<table border=1>
<tr> <th>  </th> <th> i </th> <th> j </th> <th> k </th>  </tr>
  <tr> <td align="right"> i </td> <td> -1 </td> <td> -k </td> <td> j </td> </tr>
  <tr> <td align="right"> j </td> <td> k </td> <td> -1 </td> <td> -i </td> </tr>
  <tr> <td align="right"> k </td> <td> -j </td> <td> i </td> <td> -1 </td> </tr>
   </table>

```R
#正六面体{6,3}…ある頂点を中心に立方体を8個並べると空間充填し自己相似図形となる。
> (6-2)*3
[1] 12
> 2*6
[1] 12
```

②この**正六面体**と**双対**関係にあるのが「<font color="red">各頂点から4辺が伸びる図形</font>」にして「<font color="red">1回直角に曲がると原蹠から対蹠に到達し、3回直角に曲がると原蹠に戻る</font>」**正八面体**(<font color="blue">Regular octahedron</font>)となる。単独では空間充填性を備えず、(<font color="blue">一辺がsqrt(2)で高さがsqrt(3)/2の</font>)**正四面体**(<font color="blue">Regular Tetrahedron</font>)による補完を必要とする。そうか、なまじ頂点から伸ばせる辺の数が４本と考えると、こんな問題が…
[【Rで球面幾何学】正四面体と正六面体と正八面体の連続性と「テトラパックの思わぬ正体」について。](https://qiita.com/ochimusha01/items/3356f7c805917660632c)
![triangles004.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/1576eee8-d928-eb03-e8ad-b4ffd5efda44.gif)

③ところでその**正三角形**自体は<font color="green">3枚</font>集めると**正四面体**、<font color="green">4枚</font>集めると**正八面体**、<font color="green">5枚</font>集めると**正二十面体**、<font color="green">6枚</font>集めると**正六角形**を形成する。
[【Rで球面幾何学】正四面体(Tetrahedron)と正六面体(Cube)と正八面体(Octahedron)と正二十面体(Icosahedron)の狭間。そして正十二面体（Dodecahedron）との関係について。](https://qiita.com/ochimusha01/items/5d30aab4e2e32ef9bcce)
![20200207094535.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/50c9b16f-bd89-df18-8a2a-9ae775f4fa4a.png)
![20200207044808.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/fe7a0a07-fc3f-c8fc-418b-ef57c8d8438e.gif)
![Rplot21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/62b30119-db8b-a18a-6e58-b8cce11f28cc.png)
![Octahedron02.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/6e64f26c-04fd-6724-434f-4a8dc3ac784e.gif)
![Rplot19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/1e36492f-10d2-84a3-0526-6aea1d1ff60b.png)
![icosahedron009.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/9068fd22-a331-a86d-49d6-8842b37e8f11.gif)
![Rplot22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/65f5aa77-620b-eaa0-20e4-4b29789f3394.png)

とどのつまり(<font color="blue">対蹠座標系上の連続性に甘えて</font>)**正八面体と正四面体の補完関係**を「<font color="red">誤差の範囲</font>」と割り切り（<font color="blue">「5系」の数字が乱入してくる</font>）**正二十面体**の場合さえ切り捨てたら、とりあえず直交座標系のX軸、X軸、Z軸上に**整数集合**<font color="green">{-2,-1,0,1,2}</font>と**無理数**<font color="green">sqrt(2)</font>(<font color="blue">X軸1:Y軸1の時の対角線</font>)と<font color="green">sqrt(3)</font>(<font color="blue">X軸1:Y軸2かX軸2:Y軸1の時の対角線</font>)しか現れない(<font color="blue">要するに原点を中心とする半直線の集合たる直交座標系や、単位円を中心に同心円集合を形成する曲座標系に匹敵する</font>)**閉じた座標系**(<font color="blue">Closed System</font>)が立ち現れてくるのです。

①この「**絶天地通**」により、その**正二十面体**と双対関係にあり「それぞれ(<font color="blue">「右手系」/「左手系」の意味で</font>)<font color="red">左右に２回ずつ曲がると原蹠から対蹠に到達する5次元操作</font>」が特徴の**正十二面体**(<font color="blue">Regular Dodecahedron</font>)が一緒くたに「**認識可能な範囲外を跋扈する絶対他者**」の立場に追いやられる事になる。
![dodecahedron051.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/e1111178-a73e-f381-32f1-a0336af7721a.gif)

②かかる「**隔壁落とし**」に満足出来ないのなら「<font color="red">正方形とその縦方向と横方向の180度回転</font>」しか存在しない**クラインの四元群**の世界まで撤退するしかない（<font color="blue">面を起点とする展開のみに注目し、頂点を起点とする展開を完全に切り捨てている</font>）。
[クラインの四元群](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>)。

遂にやっと、これまで心の中でモヤモヤしていた「<font color="red">絶天地通＝誤差切り捨て=隔壁落とし問題</font>」について触れる事が出来ました!! とりあえず、以下続報…