試行錯誤によって多面体を描く - ryukoku universitytsutomu/undergraduate/...2015...
TRANSCRIPT
2015年度卒業論文
試行錯誤によって多面体を描く
龍谷大学 理工学部 数理情報学科
T090024 川瀬 佳孝
T100082 山田 裕貴
指導教員 池田 勉
概要
多面体を描こうとする時に頂点の座標を手計算で求めるのではなく、もっと簡単な方法で描きたいと思った。正多面体の 1つの頂点に注目して、その頂点に集まる面の展開図を考える。この展開図を折り曲げることにより正多面体を作ることにした。この時、折り曲げすぎると最後の面が最初の面を貫通し、折り曲げたりないと最後の面が最初の面に届かない。よって、最初の面と最後の面がくっつく折れ角を二分法で求めることができる。正多面体の他にどの様な規則的な多面体が存在するのかをインターネットで調べるとWikipediaの『一様多面体』というページを見つけた。一覧の中の半正多面体に注目した。半正多面体には切頂多面体(正多面体の各頂点をすべての面が正多角形になるように切ったもの)と呼ばれるものがある。さらに、立方体、正八面体から作ることができるグループと正十二面体、正二十面体から作ることができるグループがある。グループごとに描き方を簡単に説明する。正多面体は 1つの頂点に集まる合同な面を等しい折れ角で折り曲げればよい。切頂多面体は 1つの面に集まる合同な面を等しい折れ角で折り曲げればよい。立方八面体(立方体、正八面体の各頂点を各辺の中点を結んでできる面で切ったもの)は 1つの頂点に集まる交互に並ぶ 2種類の正多角形を等しい折れ角で折り曲げればよい。二十・十二面体(正十二面体、正二十面体の各頂点を各辺の中点を結んでできる面で切ったもの)も同様である。斜方二十・十二面体(正十二面体、正二十面体の各辺をすべての面が正多角形になるように切ったもの)は 1つの面に集まる交互に並ぶ 2種類の正多角形を等しい折れ角で折り曲げればよい。斜方切頂立方八面体(立方八面体の各頂点をすべての面が正多角形になるように切ったもの)は異なる 2種類の折れ角で折ることになる。2種類の折れ角があるので、そのままでは二分法は使えない。しかしながら、ある工夫を施せば 1つの折れ角の場合に帰着できることが分かった。この方法には二分法を適用できる。斜方切頂二十・十二面体(二十・十二面体の各頂点をすべての面が正多角形になるように切ったもの)も同様である。
斜方立方八面体(立方体、正八面体の各辺をすべての面が正多角形になるよう
に切ったもの)は正方形を 45度づつ折ってゆけばよい。なお当初 2種類の折れ角
が必要と思っていた斜方切頂多面体も、後日、交互に並ぶ 2種類の正多角形を等
しい折れ角で折り曲げればよいことが分かった。
2015年度卒業論文
試行錯誤によって多面体を描く
龍谷大学 理工学部 数理情報学科
T090024 川瀬 佳孝
T100082 山田 裕貴
指導教員 池田 勉
目次
1 はじめに 1
1.1 研究の動機と内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 多面体の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 凸多面体の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.4 正多面体の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.5 オイラーの多面体公式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.6 研究と執筆の分担 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 正多面体について 2
2.1 正多面体の 1つの頂点に集まる面の形と枚数 . . . . . . . . . . . . . . . . 2
2.2 正多面体の面の枚数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 取り扱った多面体 6
3.1 切頂多面体 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 立方体、正八面体のグループ . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 正十二面体、正二十面体のグループ . . . . . . . . . . . . . . . . . . . . . 8
4 任意の回転軸の周りの回転 10
4.1 平行移動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.2 x軸の周りに θ1 度、回転移動 . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3 y 軸の周りに θ2 度、回転移動 . . . . . . . . . . . . . . . . . . . . . . . . 12
4.4 z 軸の周りに θ度、回転移動 . . . . . . . . . . . . . . . . . . . . . . . . 13
4.5 y 軸の周りに −θ2 度、回転移動 . . . . . . . . . . . . . . . . . . . . . . . 13
4.6 x軸の周りに −θ1 度、回転移動 . . . . . . . . . . . . . . . . . . . . . . . 14
4.7 逆平行移動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5 多面体の描画方法 14
5.1 立方八面体,二十・十二面体 . . . . . . . . . . . . . . . . . . . . . . . . 15
5.2 斜方立方八面体,斜方二十・十二面体 . . . . . . . . . . . . . . . . . . . . 19
5.3 斜方切頂立方八面体,斜方切頂二十・十二面体 . . . . . . . . . . . . . . . 24
6 まとめ 35
1 はじめに
1.1 研究の動機と内容
多面体を描画することを考えた時に、頂点の座標を求めて繋いでいく方法が思い浮かん
だ。しかし、手計算で頂点の座標を求めることは大変である。したがって、手計算で求め
るのではなく、二分法を用いたアルゴリズムで折れ角を求め、回転移動することにより描
画することにした。正多面体の他にどの様な規則的な多面体が存在するのかをインター
ネットで調べるとWikipedia の『一様多面体』というページを見つけた。一覧の中の半
正多面体を描画することにした。
1.2 多面体の定義
[2]によれば多面体は次を満たす立体と定義されている。
(I) すべての面が多角形である。
(II) すべての辺は 2枚の面のみに含まれる。
(III) すべての頂点から 3本以上の辺が出ている。
1.3 凸多面体の定義
[2]によれば凸多面体は次を満たす多面体と定義されている。
(IV) 多面体の中の任意の 2点を結ぶ線分が常に多面体に含まれる。
1.4 正多面体の定義
[2]によれば正多面体は次を満たす多面体と定義されている。
(V) 凸多面体である。
(VI) すべての面が合同な正多角形である。
(VII) すべての頂点から同じ本数の辺が出ている。
1.5 オイラーの多面体公式
[2]によればオイラーの多面体公式は次のように定義されている。
多面体の頂点を V、辺を E、面を F とすると
V − E + F = 2 (1)
1
1.6 研究と執筆の分担
アルゴリズムは共同で考えた。プログラムは二十・十二面体、斜方二十・十二面体、斜
方切頂二十・十二面体は川瀬が担当し、立方八面体、斜方立方八面体、斜方切頂立方八面
体は山田が担当した。
第 1章と第 4章と第 6章は共同で執筆した。第 2章と第 5.3節は川瀬が執筆し、第 3章
と第 5.1節と第 5.2節は山田が執筆した。
2 正多面体について
2.1 正多面体の 1つの頂点に集まる面の形と枚数
凸多面体の 1 つの頂点に集まる面の展開図を考える。集まっている平面角の和は 360
度未満でないと折り曲げて凸多面体を作ることができない。このことは図 1を見ると理解
しやすい。
図 1 1つの頂点に正三角形が 6枚集まる時
実際に、正多面体を考える。面の形を正 n角形、頂点から出ている辺の数を m本とす
る (1つの頂点に集まる面の枚数も m枚となる)。n,mは自然数とする。nは面を作るた
めには 3以上である必要がある。mは (III)より 3以上である。
正 n角形の内角を θn 度とすると、
m× θn < 360 (2)
となるようなmを考える。まず、nが 3の時は θn 度は 60度となり、m = 3, 4, 5の時に
式 (2)を満たす。次に、nが 4の時は θn 度は 90度となり、m = 3の時に式 (2)を満た
す。次に、nが 5の時は θn 度は 108度となり、m = 3の時に式 (2)を満たす。次に、n
が 6の時は θn 度は 120度となり、式 (2)を満たすmは存在しない。nが 7以上の時も n
が 6の時と同様に式 (2)を満たすmは存在しない。
2
つまり、1つの頂点に集まる面の形と枚数は、正三角形の時が 3,4,5枚、正方形の時が
3枚、正五角形の時が 3枚となる。よって、正多面体は 5種類しかないことが分かる。
2.2 正多面体の面の枚数
正多面体の 1つの頂点に集まる面の形と枚数の組み合わせが分かったので、でき上がる
正多面体を正 N 面体とした時の N を考える。
2.2.1 1つの頂点に正三角形が 3枚集まる時
図 2 1つの頂点に正三角形が 3枚集まる時
1面あたりの頂点の数は3÷ 3 = 1
となり、1面あたりの辺の数は
3÷ 2 =3
2
となる。でき上がる正多面体を正 N 面体とすると、式 (1)より
N − 3
2N +N = 2
∴ N = 4
となり、1つの頂点に正三角形が 3枚集まる時は正四面体となる。
2.2.2 1つの頂点に正三角形が 4枚集まる時
図 3 1つの頂点に正三角形が 4枚集まる時
3
1面あたりの頂点の数は
3÷ 4 =3
4
となり、1面あたりの辺の数は
3÷ 2 =3
2
となる。でき上がる正多面体を正 N 面体とすると、式 (1)より
3
4N − 3
2N +N = 2
∴ N = 8
となり、1つの頂点に正三角形が 4枚集まる時は正八面体となる。
2.2.3 1つの頂点に正三角形が 5枚集まる時
図 4 1つの頂点に正三角形が 5枚集まる時
1面あたりの頂点の数は
3÷ 5 =3
5
となり、1面あたりの辺の数は
3÷ 2 =3
2
となる。でき上がる正多面体を正 N 面体とすると、式 (1)より
3
5N − 3
2N +N = 2
∴ N = 20
となり、1つの頂点に正三角形が 5枚集まる時は正二十面体となる。
4
2.2.4 1つの頂点に正方形が 3枚集まる時
図 5 1つの頂点に正方形が 3枚集まる時
1面あたりの頂点の数は
4÷ 3 =4
3
となり、1面あたりの辺の数は4÷ 2 = 2
となる。でき上がる正多面体を正 N 面体とすると、式 (1)より
4
3N − 2N +N = 2
∴ N = 6
となり、1つの頂点に正方形が 3枚集まる時は立方体となる。
2.2.5 1つの頂点に正五角形が 3枚集まる時
図 6 1つの頂点に正五角形が 3枚集まる時
1面あたりの頂点の数は
5÷ 3 =5
3
となり、1面あたりの辺の数は
5÷ 2 =5
2
5
となる。でき上がる正多面体を正 N 面体とすると、式 (1)より
5
3N − 5
2N +N = 2
∴ N = 12
となり、1つの頂点に正五角形が 3枚集まる時は正十二面体となる。
つまり、5種類の正多面体とは正四面体、立方体、正八面体、正十二面体、正二十面体
である。
3 取り扱った多面体
図 7 取り扱った多面体の家系図
3.1 切頂多面体
切頂多面体とは正多面体の各頂点をすべての面が正多角形になるように切ったもの。
3.2 立方体、正八面体のグループ
3.2.1 立方八面体
立方体、正八面体の各辺の中点を図 9、図 10のように線 (赤、黄)で結ぶ。すべての点
に対して、結んだ線に沿って切り落としてできる多面体が立方八面体である。
立方八面体を立方体より作る時、立方体には 1つの頂点に対して 3枚の面が集まってい
るので頂点を切ると、断面は正三角形となる。立方八面体を正八面体より作る時、正八面
体には 1 つの頂点に対して 4 枚の面が集まっているので頂点を切ると、断面は正方形と
なる。
立方八面体は、正三角形と正方形が交互に並んでできる多面体であり、内角はすべて等
しい。
6
図 8 立方八面体 図 9 立方体 図 10 正八面体
3.2.2 斜方立方八面体
立方体、正八面体のすべての辺に対して、図 12、図 13のように線 (赤、黄)で結び、す
べての面が正多角形になり、すべての辺の長さが等しくなるように切り落としてできる多
面体が斜方立方八面体である。
斜方立方八面体を立方体より作る時、立方体には 1つの頂点に対して 3枚の面が集まっ
ているので、頂点に対しての断面は正三角形となる。辺に対しての断面は正方形となる。
斜方立方八面体を正八面体より作る時、正八面体には 1 つの頂点に対して 4 枚の面が
集まっているので、頂点に対しての断面は正方形となる。辺に対しての断面も正方形と
なる。
斜方立方八面体の面は、正三角形、正方形の 2種類の正多角形で構成されている。内角
は、正三角形と正方形の間、正方形と正方形の間の 2種類がある。
図 11 斜方立方八面体 図 12 立方体 図 13 正八面体
3.2.3 斜方切頂立方八面体
立方八面体のすべての頂点に対して、図 15のように線 (青)で結び、すべての面が正多
角形になり、すべての辺の長さが等しくなるように切り落としてできる多面体が斜方切頂
立方八面体である。
斜方切頂立方八面体を作る時、立方八面体には 1つの頂点に対して 4枚の面が集まって
7
いるので頂点を切ると、断面は正方形となる。
斜方切頂立方八面体の面は、正方形、正六角形、正八角形の 3種類の正多角形で構成さ
れている。内角は、正方形と正六角形の間、正方形と正八角形の間、正六角形と正八角形
の間の 3種類がある。
図 14 斜方切頂立方八面体 図 15 立方八面体
3.3 正十二面体、正二十面体のグループ
3.3.1 二十・十二面体
正十二面体、正二十面体の各辺の中点を図 17、図 18のように線 (赤、黄)で結ぶ。すべ
ての点に対して、結んだ線に沿って切り落としてできる多面体が二十・十二面体である。
二十・十二面体を正十二面体より作る時、正十二面体には 1つの頂点に対して 3枚の面
が集まっているので頂点を切ると、断面は正三角形となる。二十・十二面体を正二十面体
より作る時、正二十面体には 1つの頂点に対して 5枚の面が集まっているので頂点を切る
と、断面は正五角形となる。
二十・十二面体は、正三角形と正五角形が交互に並んでできる多面体であり、内角はす
べて等しい。
図 16 二十・十二面体 図 17 正十二面体 図 18 正二十面体
8
3.3.2 斜方二十・十二面体
正十二面体、正二十面体のすべての辺に対して、図 20、図 21のように線 (赤、黄)で結
び、すべての面が正多角形になり、すべての辺の長さが等しくなるように切り落としてで
きる多面体が斜方二十・十二面体である。
斜方二十・十二面体を正十二面体より作る時、正十二面体には 1つの頂点に 3枚の面が
集まっているので、頂点に対しての断面は正三角形となる。辺に対しての断面は正方形と
なる。斜方二十・十二面体を正二十面体より作る時、正二十面体には 1つの頂点に 5枚の
面が集まっているので、頂点に対しての断面は正五角形となる。辺に対しての断面は正方
形となる。
斜方二十・十二面体の面は、正三角形、正方形、正五角形の 3種類の正多角形で構成さ
れている。内角は、正三角形と正方形の間、正方形と正五角形の間の 2種類がある。
図 19 斜方二十・十二面体 図 20 正十二面体 図 21 正二十面体
3.3.3 斜方切頂二十・十二面体
二十・十二面体のすべての頂点に対して、図 23のように線 (青)で結び、すべての面が
正多角形になり、すべての辺の長さが等しくなるように切り落としてできる多面体が斜方
切頂二十・十二面体である。
斜方切頂二十・十二面体を作る時、二十・十二面体には 1つの頂点に対して 4枚の面が
集まっているので、断面は正方形となる。
斜方切頂二十・十二面体の面は、正方形、正六角形、正十角形の 3種類の正多角形で構
成されている。内角は、正方形と正六角形の間、正方形と正十角形の間、正六角形と正十
角形の間の 3種類がある。
9
図 22 斜方切頂二十・十二面体 図 23 二十・十二面体
4 任意の回転軸の周りの回転
多面体を回転移動することにより描画するために、任意の線分を回転軸とし、その周り
で θ 度、回転移動することを考えた。実際にこのことを行うために、z 軸に回転軸を重ね
ることにした。その際、x軸,y 軸,z 軸周りの回転行列を [3]より参照した。
4.1 平行移動
図 24 平行移動
P が O に重なるように平行移動をする。Q1 は (xq − xp, yq − yp, zq − zp) となり、
A1 は (a − xp, b − yp, c − zp) となる。(xq − xp, yq − yp, zq − zp) を (x1, y1, z1) とし、
(a− xp, b− yp, c− zp)を (a1, b1, c1)とする。
10
4.2 x軸の周りに θ1 度、回転移動
図 25 x軸の周りに θ1 度、回転移動
Q1 が xz 平面に重なるように x軸の周りに回転移動する。Q2 は 1 0 00 cos θ1 − sin θ10 sin θ1 cos θ1
x1
y1z1
=
x1
y1 cos θ1 − z1 sin θ1y1 sin θ1 + z1 cos θ1
となる。この時、Q2 は xz 平面上にあるので
y1 cos θ1 − z1 sin θ1 = 0
となる、cos θ1と sin θ1 を求める。 y1 = z1 = 0の時
cos θ1 = 1, sin θ1 = 0
となり、y1 ̸= 0または z1 ̸= 0の時
cos θ1 =z1√
y12 + z12, sin θ1 =
y1√y12 + z12
となる。A2 は 1 0 00 cos θ1 − sin θ10 sin θ1 cos θ1
a1b1c1
=
a1b1 cos θ1 − c1 sin θ1b1 sin θ1 + c1 cos θ1
となる。(x1, 0, y1 sin θ1+z1 cos θ1)を (x2, 0, z2)とし、(a1, b1 cos θ1−c1 sin θ1, b1 sin θ1+
c1 cos θ1)を (a2, b2, c2)とする。
11
4.3 y 軸の周りに θ2 度、回転移動
図 26 y 軸の周りに θ2 度、回転移動
Q2 が z 軸に重なるように y 軸の周りに回転移動する。Q3 は cos θ2 0 sin θ20 1 0
− sin θ2 0 cos θ2
x2
0z2
=
x2 cos θ2 + z2 sin θ20
−x2 sin θ2 + z2 cos θ2
となる。この時、Q3 は z 軸上にあるので
x2 cos θ2 + z2 sin θ2 = 0
となる、cos θ2と sin θ2 を求める。 x2 = z2 = 0の時
cos θ2 = 1, sin θ2 = 0
となり、x2 ̸= 0または z2 ̸= 0の時
cos θ2 =z2√
x22 + z22
, sin θ2 = − x2√x2
2 + z22
となる。A3 は cos θ2 0 sin θ20 1 0
− sin θ2 0 cos θ2
a2b2c2
=
a2 cos θ2 + c2 sin θ2b2
−a2 sin θ2 + c2 cos θ2
となる。(0, 0,−x2 sin θ2+z2 cos θ2)を (0, 0, z3)とし、(a2 cos θ2+c2 sin θ2, b2,−a2 sin θ2+
c2 cos θ2)を (a3, b3, c3)とする。
12
4.4 z 軸の周りに θ度、回転移動
図 27 z 軸の周りに θ 度、回転移動
z 軸の周りに θ度、回転移動する。A4 は cos θ − sin θ 0sin θ cos θ 00 0 1
a3b3c3
=
a3 cos θ − b3 sin θa3 sin θ + b3 cos θ
c3
となる。(a3 cos θ − b3 sin θ, a3 sin θ + b3 cos θ, c3)を (a4, b4, c4)とする。
4.5 y 軸の周りに −θ2 度、回転移動
図 28 y 軸の周りに −θ2 度、回転移動
y 軸の周りに −θ2 度、回転移動する。A5 は cos θ2 0 − sin θ20 1 0
sin θ2 0 cos θ2
a4b4c4
=
a4 cos θ2 − c4 sin θ2b4
a4 sin θ2 + c4 cos θ2
となる。(a4 cos θ2 − c4 sin θ2, b4, a4 sin θ2 + c4 cos θ2)を (a5, b5, c5)とする。
13
4.6 x軸の周りに −θ1 度、回転移動
図 29 x軸の周りに −θ1 度、回転移動
x軸の周りに −θ1 度、回転移動する。A6 は 1 0 00 cos θ1 sin θ10 − sin θ1 cos θ1
a5b5c5
=
a5b5 cos θ1 + c5 sin θ1−b5 sin θ1 + c5 cos θ1
となる。(a5, b5 cos θ1 + c5 sin θ1,−b5 sin θ1 + c5 cos θ1)を (a6, b6, c6)とする。
4.7 逆平行移動
図 30 逆平行移動
P と Qが元に戻るように平行移動をする。Agoal は (a6 + xp, b6 + yp, c6 + zp)となる。
(a6 + xp, b6 + yp, c6 + zp)を (agoal, bgoal, cgoal)とする。
5 多面体の描画方法
図の薄い黄色の面や薄い赤色の面は展開図を折り曲げた時に、点が手前側と奥側のどち
らに来ているのかを見やすくするためにある。
14
5.1 立方八面体,二十・十二面体
5.1.1 立方八面体
図 31 立方八面体
まず、立方八面体の1つの頂点に集まる面についての展開図を描画する。
図 32 1つの頂点に集まる面についての展開図
次に、折れ角を求める。立方八面体には内角が 1種類しかないので、折れ角を 1種類求
めたらよい。すべての面を適切な折れ角 (折れ角が外角と一致した時)で回転移動した時、
黒色の点は緑色の点と重なる。この時の折れ角を調べる。
(i) 辺 aを回転軸とし、面 2,3,4を回転移動する。
(ii) 辺 bを回転軸とし、面 3,4を回転移動する。
(iii) 辺 cを回転軸とし、面 4を回転移動する。
以上の操作をした時、折れ角が外角より大きいと図 33のように面 1の手前側に黒色の点
が来る。折れ角が外角より小さいと図 34のように面 1の奥側に黒色の点が来る。
15
図 33 折れ角が外角より大きい時 図 34 折れ角が外角より小さい時
この時、二分法を用いると黒色の点が緑色の点と重なる折れ角を求めることができる。
折れ角を求める時、プログラム上では面 1は xy 平面に描画した。よって、黒色の点が面
1の手前側にある時は z 座標が正の値となり、黒色の点が面 1の奥側にある時は z 座標が
負の値となる。ゆえに黒色の点の z 座標を二分法の判定条件とし、z 座標が 0に収束する
まで繰り返す。
適切な折れ角で回転移動した時の図が図 35である。
図 35 折れ角が適切な時
適切な折れ角を求められたので、立方八面体を描画した。描画したのが図 36である。
図 36 立方八面体
16
5.1.2 二十・十二面体
図 37 二十・十二面体
まず、二十・十二面体の1つの頂点に集まる面についての展開図を描画する。
図 38 1つの頂点に集まる面についての展開図
次に、折れ角を求める。二十・十二面体には内角が 1種類しかないので、折れ角を 1種
類求めたらよい。すべての面を適切な折れ角 (折れ角が外角と一致した時)で回転移動し
た時、黒色の点は緑色の点と重なる。この時の折れ角を調べる。
(i) 辺 aを回転軸とし、面 2,3,4を回転移動する。
(ii) 辺 bを回転軸とし、面 3,4を回転移動する。
(iii) 辺 cを回転軸とし、面 4を回転移動する。
以上の操作をした時、折れ角が外角より大きいと図 39のように面 1の手前側に黒色の点
が来る。折れ角が外角より小さいと図 40のように面 1の奥側に黒色の点が来る。
17
図 39 折れ角が外角より大きい時 図 40 折れ角が外角より小さい時
この時、二分法を用いると黒色の点が緑色の点と重なる折れ角を求めることができる。
折れ角を求める時、プログラム上では面 1は xy 平面に描画した。よって、黒色の点が面
1の手前側にある時は z 座標が正の値となり、黒色の点が面 1の奥側にある時は z 座標が
負の値となる。ゆえに黒色の点の z 座標を二分法の判定条件とし、z 座標が 0に収束する
まで繰り返す。
適切な折れ角で回転移動した時の図が図 41である。
図 41 折れ角が適切な時
適切な折れ角を求められたので、二十・十二面体を描画した。描画したのが図 42 で
ある。
図 42 二十・十二面体
18
5.1.3 折れ角の収束具合
図 43 折れ角の収束具合
立方八面体、二十・十二面体の折れ角の収束具合は図 43のようになっている。初期条
件を 1度と 90度にすると 10~15回で収束している。
5.2 斜方立方八面体,斜方二十・十二面体
5.2.1 斜方立方八面体
図 44 斜方立方八面体
まず、図 44を見ると正方形がまっすぐ 1周していることが分かるので、1周している
正方形の展開図を描画する。
19
図 45 1周している正方形の展開図
次に、折れ角を求める。斜方立方八面体には内角が 2種類があるが、ここでは折れ角を
1 種類求めるだけでよい。すべての面を適切な折れ角 (折れ角が外角と一致した時) で回
転移動した時、黒色の点は緑色の点と重なる。この時の折れ角を調べる。
(i) 辺 aを回転軸とし、面 2,3,4,5,6,7,8を回転移動する。
(ii) 辺 bを回転軸とし、面 3,4,5,6,7,8を回転移動する。
(iii) 辺 cを回転軸とし、面 4,5,6,7,8を回転移動する。
(iv) 辺 dを回転軸とし、面 5,6,7,8を回転移動する。
(v) 辺 eを回転軸とし、面 6,7,8を回転移動する。
(vi) 辺 fを回転軸とし、面 7,8を回転移動する。
(vii) 辺 gを回転軸とし、面 8を回転移動する。
以上の操作をした時、折れ角が外角より大きいと図 46のように面 1の手前側に黒色の点
が来る。折れ角が外角より小さいと図 47のように面 1の奥側に黒色の点が来る。
図 46 折れ角が外角より大きい時 図 47 折れ角が外角より小さい時
この時、二分法を用いると黒色の点が緑色の点と重なる折れ角を求めることができる。
折れ角を求める時、プログラム上では面 1は xy 平面に描画した。よって、黒色の点が面
1の手前側にある時は z 座標が正の値となり、黒色の点が面 1の奥側にある時は z 座標が
負の値となる。ゆえに黒色の点の z 座標を二分法の判定条件とし、z 座標が 0に収束する
まで繰り返す。
適切な折れ角で回転移動した時の図が図 48である。
20
図 48 折れ角が適切な時
適切な折れ角を求められたので、斜方立方八面体を描画した。描画したのが図 49 で
ある。
図 49 斜方立方八面体
しかし、図 49を見た時、ある特徴に気付いた。8枚の正方形が 1周しているので、図
48を真上から見た時、正八角形となっていることが分かる。
図 50 図 48を真上から見た時
つまり、適切な折れ角は正八角形の内角であると分かるので、二分法を用いなくとも、
斜方立方八面体は描画できる。
21
5.2.2 斜方二十・十二面体
図 51 斜方二十・十二面体
まず、斜方二十・十二面体の1つの頂点に集まる面についての、展開図を描画する。
図 52 1つの頂点に集まる面についての展開図
次に、折れ角を求める。斜方二十・十二面体には内角が 2種類あるが、ここでは折れ角
を 1種類求めるだけでよい。すべての面を適切な折れ角 (折れ角が外角と一致した時)で
回転移動した時、黒色の点は緑色の点と重なる。この時の折れ角を調べる。
(i) 辺 aを回転軸とし、面 2,3,4,5,6,7,8,9,10を回転移動する。
(ii) 辺 bを回転軸とし、面 3,4,5,6,7,8,9,10を回転移動する。
(iii) 辺 cを回転軸とし、面 4,5,6,7,8,9,10を回転移動する。
(iv) 辺 dを回転軸とし、面 5,6,7,8,9,10を回転移動する。
(v) 辺 eを回転軸とし、面 6,7,8,9,10を回転移動する。
(vi) 辺 fを回転軸とし、面 7,8,9,10を回転移動する。
(vii) 辺 gを回転軸とし、面 8,9,10を回転移動する。
(viii) 辺 hを回転軸とし、面 9,10を回転移動する。
(ix) 辺 iを回転軸とし、面 10を回転移動する。
以上の操作をした時、折れ角が外角より大きいと図 53のように面 1の手前側に黒色の点
22
が来る。折れ角が外角より小さいと図 54のように面 1の奥側に黒色の点が来る。
図 53 折れ角が外角より大きい時 図 54 折れ角が外角より小さい時
この時、二分法を用いると黒色の点が赤色の点と重なる折れ角を求めることができる。
折れ角を求める時、プログラム上では面 1は xy 平面に描画した。よって、黒色の点が面
1の手前側にある時は z 座標が正の値となり、黒色の点が面 1の奥側にある時は z 座標が
負の値となる。ゆえに黒色の点の z 座標を二分法の判定条件とし、z 座標が 0に収束する
まで繰り返す。
適切な折れ角で回転移動した時の図が図 55である。
図 55 折れ角が適切な時
適切な折れ角を求められたので、斜方二十・十二面体を描画した。描画したのが図 56
である。
図 56 斜方二十・十二面体
23
5.2.3 折れ角の収束具合
図 57 折れ角の収束具合
斜方二十・十二面体の折れ角の収束具合は図 57のようになっている。初期条件を 1度
と 90度にすると 10~15回で収束している。
5.3 斜方切頂立方八面体,斜方切頂二十・十二面体
最初、斜方切頂立方八面体と斜方切頂二十・十二面体を描画するためには折れ角を 2種
類求める必要があると考えプログラムを作成した。しかし、1月 11日に折れ角を 1種類
求めるだけで描画することができることに気付いた。第 5.3節では新、旧両方の方法を紹
介する。
5.3.1 斜方切頂立方八面体 (旧)
図 58 斜方切頂立方八面体
24
まず、斜方切頂立方八面体の 1つの頂点に集まる面についての展開図を描画する。
図 59 1つの頂点に集まる面についての展開図
次に、折れ角を求める。斜方切頂立方八面体には内角が 3種類あるが、ここでは折れ角
を 2種類求めるだけでよい。すべての面を適切な折れ角 (折れ角が外角と一致した時)で
回転移動した時、黒色の点は緑色の点と重なる。この時の折れ角を調べる。
(i) 辺 aを回転軸とし、面 2を回転移動する。
(ii) 辺 bを回転軸とし、面 3を回転移動する。
以上の操作をした時、黒色の点と緑色の点が重なるようにしたい。しかし、この操作では
面 2の折れ角が外角より小さい時、面 3をどのような折れ角で回転移動しても黒色の点と
緑色の点が重なることはない。面 2 の折れ角が外角より大きい時も面 3 をどのような折
れ角で回転移動しても黒色の点と緑色の点が重なることはない。よって、以下の操作をす
ることにした。
(iii) 辺 aを回転軸とし、黒色の点を回転移動する。
(iv) 辺 bを回転軸とし、黒色の点を面 3と同じ平面上に来るように回転移動する。
以上の操作をする際に必要な部分だけ描画する。
図 60 必要な部分だけ描画した図
(iii),(iv)の操作をした時、折れ角が外角より大きいと図 61のように辺 cの上側に黒色
25
の点が来る。折れ角が外角より小さいと図 62のように辺 cの下側に黒色の点が来る。
図 61 折れ角が外角より大きい時 図 62 折れ角が外角より小さい時
この時、二分法を用いると黒色の点が緑色の点と重なる折れ角を求めることができる。
折れ角を求める時、プログラム上では面 1,3は xy 平面に描画した。黒色の点が辺 cの上
側に来るか下側に来るかを二分法の判定条件とし、黒色の点が辺 c上に収束するまで繰り
返す。
適切な折れ角で回転移動した時の図が図 63である。
図 63 折れ角が適切な時
適切な折れ角を求められたので、斜方切頂立方八面体を描画した。描画したのが図 64
である。
26
図 64 斜方切頂立方八面体
5.3.2 斜方切頂二十・十二面体 (旧)
図 65 斜方切頂二十・十二面体
まず、斜方切頂二十・十二面体の 1つの頂点に集まる面についての展開図を描画する。
図 66 1つの頂点に集まる面についての展開図
次に、折れ角を求める。斜方切頂二十・十二面体には内角が 3 種類あるが、ここでは
折れ角を 2種類求めるだけでよい。すべての面を適切な折れ角 (折れ角が外角と一致した
時)で回転移動した時、黒色の点は緑色の点と重なる。この時の折れ角を調べる。
(i) 辺 aを回転軸とし、面 2を回転移動する。
27
(ii) 辺 bを回転軸とし、面 3を回転移動する。
以上の操作をした時、黒色の点と緑色の点が重なるようにしたい。しかし、この操作では
面 2の折れ角が外角より小さい時、面 3をどのような折れ角で回転移動しても黒色の点と
緑色の点が重なることはない。面 2 の折れ角が外角より大きい時も面 3 をどのような折
れ角で回転移動しても黒色の点と緑色の点が重なることはない。よって、以下の操作をす
ることにした。
(iii) 辺 aを回転軸とし、黒色の点を回転移動する。
(iv) 辺 bを回転軸とし、黒色の点を面 3と同じ平面上に来るように回転移動する。
以上の操作をする際に必要な部分だけ描画する。
図 67 必要な部分だけ描画した図
(iii),(iv)の操作をした時、折れ角が外角より大きいと図 68のように辺 cの上側に黒色
の点が来る。折れ角が外角より小さいと図 69のように辺 cの下側に黒色の点が来る。
図 68 折れ角が外角より大きい時 図 69 折れ角が外角より小さい時
この時、二分法を用いると黒色の点が緑色の点と重なる折れ角を求めることができる。
折れ角を求める時、プログラム上では面 1,3は xy 平面に描画した。黒色の点が辺 cの上
28
側に来るか下側に来るかを二分法の判定条件とし、黒色の点が辺 c上に収束するまで繰り
返す。
適切な折れ角で回転移動した時の図が図 70である。
図 70 折れ角が適切な時
適切な折れ角を求められたので、斜方切頂二十・十二面体を描画した。描画したのが図
71である。
図 71 斜方切頂二十・十二面体
29
5.3.3 折れ角の収束具合 (旧)
図 72 斜方切頂立方八面体の 2種類の折れ角の収束具合
図 73 斜方切頂二十・十二面体の 2種類の折れ角の収束具合
斜方切頂立方八面体、斜方切頂二十・十二面体の折れ角の収束具合は図 72、図 73のよ
うになっている。初期条件を 1度と 90度にすると 10~15回で収束している。
30
5.3.4 斜方切頂立方八面体 (新)
図 74 斜方切頂立方八面体
まず、正方形の周りに集まる面についての展開図を描画する。
図 75 正方形の周りに集まる面についての展開図
次に、折れ角を求める。斜方切頂立方八面体には内角が 3種類あるが、ここでは折れ角
を 1種類求めるだけでよい。すべての面を適切な折れ角 (折れ角が外角と一致した時)で
回転移動した時、黒色の点は緑色の点と重なる。この時の折れ角を調べる。
(i) 辺 aを回転軸とし、面 2,3,4を回転移動する。
(ii) 辺 bを回転軸とし、面 3,4を回転移動する。
(iii) 辺 cを回転軸とし、面 4を回転移動する。
以上の操作をした時、折れ角が外角より大きいと図 76のように面 1の手前側に黒色の点
が来る。折れ角が外角より小さいと図 77のように面 1の奥側に黒色の点が来る。
31
図 76 折れ角が外角より大きい時 図 77 折れ角が外角より小さい時
この時、二分法を用いると黒色の点が赤色の点と重なる折れ角を求めることができる。
折れ角を求める時、プログラム上では面 1は xy 平面に描画した。よって、黒色の点が面
1の手前側にある時は z 座標が正の値となり、黒色の点が面 1の奥側にある時は z 座標が
負の値となる。ゆえに黒色の点の z 座標を二分法の判定条件とし、z 座標が 0に収束する
まで繰り返す。
適切な折れ角で折り回転移動した時の図が図 78である。
図 78 折れ角が適切な時
適切な折れ角を求められたので、斜方切頂立方八面体を描画した。描画したのが図 79
である。
図 79 斜方切頂立方八面体
32
5.3.5 斜方切頂二十・十二面体 (新)
図 80 斜方切頂二十・十二面体
まず、正方形の周りに集まる面についての展開図を描画する。
図 81 正方形の周りに集まる面についての展開図
次に、折れ角を求める。斜方切頂二十・十二面体には内角が 3 種類あるが、ここでは
折れ角を 1種類求めるだけでよい。すべての面を適切な折れ角 (折れ角が外角と一致した
時)で回転移動した時、黒色の点は赤色の点と重なる。この時の折れ角を調べる。
(i) 辺 aを回転軸とし、面 2,3,4を回転移動する。
(ii) 辺 bを回転軸とし、面 2,3を回転移動する。
(iii) 辺 cを回転軸とし、面 2を回転移動する。
以上の操作をした時、折れ角が外角より大きいと図 82のように面 1の手前側に黒色の点
が来る。折れ角が外角より小さいと図 83のように面 1の奥側に黒色の点が来る。
33
図 82 折れ角が外角より大きい時図 83 折れ角が外角より小さい時
この時、二分法を用いると黒色の点が赤色の点と重なる折れ角を求めることができる。
折れ角を求める時、プログラム上では面 1は xy 平面に描画した。よって、黒色の点が面
1の手前側にある時は z 座標が正の値となり、黒色の点が面 1の奥側にある時は z 座標が
負の値となる。ゆえに黒色の点の z 座標を二分法の判定条件とし、z 座標が 0に収束する
まで繰り返す。
適切な折れ角で回転移動した時の図が図 84である。
図 84 折れ角が適切な時
適切な折れ角を求められたので、斜方切頂立方八面体を描画した。描画したのが図 85
である。
図 85 斜方切頂二十・十二面体
34
5.3.6 折れ角の収束具合 (新)
図 86 折れ角の収束具合
斜方切頂立方八面体、斜方切頂二十・十二面体の折れ角の収束具合は図 86 のように
なっている。初期条件を 1度と 90度にすると 10~15回で収束している。
6 まとめ
今回、規則性のある多面体を実際に描画してみたが、私たちの方法では任意の回転軸で
回転するプログラムさえ作ってしまえば簡単に描画することができることが分かった。し
かし、分かりやすい規則性に気付けないと大量の時間がかかってしまう。斜方切頂立方八
面体と斜方切頂二十・十二面体の描画方法を考えた時、折れ角を 1種類求めるだけで描け
ることに気付くのに時間がかかってしまった。そのため、変形立方体と変形十二面体も描
画したかったがすることができなかった。
35
謝辞
細井亮介さん、プログラムと TeXに関するアドバイスありがとうございます。樋栄潤
樹さん、TeXとパワーポイントに関するアドバイスありがとうございます。磯太貴さん、
プログラムに関するアドバイスありがとうございます。大佐古亮哉さん、プログラムに関
するアドバイスありがとうございます。
参考文献
[1]「一様多面体」, < https://ja.wikipedia.org/wiki/%E4%B8%80%E6%A7%98%
E5%A4%9A%E9%9D%A2%E4%BD%93>
[2]デビッド・S.リッチェソン (2014)『世界で二番目に美しい数式 上 多面体公式の
発見』(根上生也訳)岩波書店,pp.39-41,pp.45-46,pp62-63
[3]橋本洋志・小林裕之 (2005)『図解 OpenGLによる 3次元 CGアニメーション』オー
ム社,p.33
36