HyperfolderBetween Dimensions

Technical notes

詳細技術解説

Hyperfolder の計算の仕組みと、その背景

対象の版 2.4.0 / 概要と改版履歴へ戻る

1. 全体の構成Structure

Hyperfolder は、サーバーを使わずブラウザの中だけで計算するウェブアプリです。3D描画にはオープンソースの three.js(r160)を同梱して使い、幾何計算はすべて自前の JavaScript で行います。主なモジュールは次のとおりです。

モジュール役割
geom.jsベクトル演算、面法線、体積、3次元凸包
conway.js種多面体、コンウェイ演算、正準化
library.js名前付きの多面体(ジョンソンの立体、星型、ジオデシックなど)
analysis.js面の合同分類、頂点配置、二面角、配色
unfold.js展開図の生成、重なり判定、のりしろ、対称性の評価
netview.js用紙への割付、SVG・DXF・OBJ の出力
four.js / mode4d.js四次元ポリトープの胞の決定、投影、4次元回転、胞の展開、模型
viewer3d.js3D表示、慣性回転、折り畳みアニメーション
demo.js / mobile.jsデモ・モード、スマホ向けの操作画面
i18n.js日本語と英語の切り替え(固定の文言は対訳表、計算結果は表示時に選ぶ)

2. 多面体の表現と生成Representation and generation

2.1 表現

多面体は「頂点の座標の並び」と「各面を囲む頂点番号の並び」で表します。面の頂点は外側から見て反時計回りに並べ、右手の法則で外向きの法線が得られるようにしています。辺は面から導きます。この向きの約束が、展開図の表裏や山折り/谷折りの判定の土台になります。

2.2 凸包

ジョンソンの立体の多くは、正多角形の「環」を高さを変えて積み重ねた頂点の集まりから、凸包(すべての点を包む最小の凸多面体)として作ります。凸包は点を一つずつ加える逐次法で三角形の集まりとして求め、同じ平面にある三角形を一枚の多角形にまとめます。台塔は 2n 角形と n 角形の環から、円塔は二十・十二面体の半分から、その他は角柱・反角柱・台塔の組み合わせから作ります。

2.3 コンウェイ演算

コンウェイの多面体表記は、種となる多面体(T・C・O・D・I、角柱 Pn、反角柱 An、角錐 Yn)に、演算子を右から順に作用させて形を表します。たとえば tI は正二十面体(I)の切頂(t)で、サッカーボール形の切頂二十面体になります。

実装では、双対 d・中点切断 a・角錐化 k・ジャイロ g・面取り c・プロペラ p を基本演算として直接作り、その他は組み合わせで定義しています。

t = dkd j = da e = aa o = daa b = dkda m = kda n = kd z = dk s = dgd

基本演算は、面と頂点と辺の対応(フラグ)を書き換える方式で作るため、位相(つながり方)は正確に得られます。ただし座標は仮のものなので、次の正準化で形を整えます。

2.4 正準化

凸多面体には、次の3つの条件を同時に満たす形(正準形)が、位相ごとにただ一つ存在することが知られています(ケーベやサーストンらによる円充填の理論に基づく定理)。

  1. すべての辺が単位球(中球)に接する
  2. 辺と球の接点の重心が原点にある
  3. すべての面が平らである

George W. Hart の反復アルゴリズム(1997年)にならい、この3条件に近づくよう頂点を少しずつ動かす操作を、動きが 10−11 未満になるまで繰り返します(最大4000回。辺の数に応じて調整)。アルキメデスの立体ではすべての頂点が対称性で同等なので、正準形は辺の長さがそろった一様な形と一致します。実際、13種すべてで辺の長さの比は 1.000000 になります(斜方切頂二十・十二面体のみ 1.000005)。カタランの立体は、アルキメデスの立体の双対を同じ方法で正準化して得ます。

2.5 星型とジオデシック

3. 形の解析Analysis

面の合同分類
各面を「辺の長さと内角の列」で表し、回転と裏返しに対して最小になる表現を比べて、合同な面をまとめます(長さは最長辺の1/2000、角度は0.05°で丸め)。色分けや凡例、ジオデシックドームの部材の種類の把握に使います。
頂点配置
頂点のまわりに並ぶ面の辺の数の列(例 3.4.5.4)を、回転と裏返しに対して最小の形で表します。
二面角
隣り合う面の法線のなす角 θ から求めます。凸な辺では π − θ、へこんだ辺では π + θ で、凸な辺は山折り、へこんだ辺は谷折りになります(印刷面を外側にして組む場合)。
体積・表面積
発散定理による面ごとの和で求め、型紙の大きさに換算して表示します。

4. 展開図Nets

4.1 展開図は「面の全域木」

面を点、共有する辺を線とみなしたグラフ(双対グラフ)の全域木を一つ選ぶと、その木の辺を折り目、それ以外の辺を切り込みとする展開図が決まります。根の面を平面に置き、子の面を「共有する辺が親の同じ辺に重なる」ように剛体移動して並べていきます。

4.2 重なりの判定

新しい面を置くたびに、すでに置いた面と重ならないかを分離軸定理(二つの凸多角形が重ならないのは、どちらかの辺の法線方向への投影が離れているときに限る)で調べます。辺や頂点で接するだけの場合は重なりとみなしません。外接長方形による前判定で、計算を省きます。

4.3 用紙への収まり

印刷用の展開では、面を加えるたびに、ピース全体の凸包に回転キャリパー法を当てて最小の外接長方形を求め、印刷できる範囲(用紙から余白とフッターを除いた範囲)に収まるかを確かめます。収まらなければ、その面は別のピースとして始めます。

4.4 のりしろと番号

切り込みになる辺の組には同じ番号を振り、片方にのりしろを付けます。のりしろは台形で、側辺の角度は50°以下、かつ貼り合わせる相手の面の角の92%以下にします。隣の面や他ののりしろに重なる場合は、両端の角度と高さを段階的に絞った19通りの形を順に試します。展開図の切れ込みがほぼ0°の頂点では物理的に入らないため、その辺は画面に「のりしろなしの辺」として知らせます。

4.5 画面用:対称性を優先した展開

画面表示と3Dの展開アニメーションでは、同じ「対称性を優先した展開図」を使います。

4.6 印刷用:面積効率を優先した割付

印刷・SVG・DXF では、根や育て方を変えた複数の候補(まとまり重視・幅優先・帯状・乱数)を用紙の制約つきで作り、のりしろの欠け → ページ数 → ピース数 → 用紙の使用率、の順に最良のものを選びます。ピースは最小外接長方形の向きに回転し、高さの順に棚へ詰めるように並べます(First-Fit Decreasing)。

4.7 3Dの展開アニメーション

各面は、親の面と共有する辺を軸に、二つの面の法線を一致させる角度だけ回転すると親と同じ平面に開きます。この回転を元の三次元座標のまま親から子へ合成し、展開の度合い t に比例させて動かします。t = 1 ですべての面が根の面の平面にそろい、画面の展開図と同じ形になります。

4.8 未解決の問題

「すべての凸多面体は、辺に沿って切り開くだけで、重なりのない一枚の展開図にできるか」という問題は、デューラーの展開図にちなんで「デューラーの問題」と呼ばれ、1975年に G. C. Shephard が定式化して以来、今も解かれていません。Hyperfolder の展開は経験的な方法ですが、ライブラリの凸多面体はすべて一枚にまとまります。へこみのある多面体では、重なりのない辺展開そのものが存在しない場合があり、そのときは複数のピースに分けます。

5. 四次元ポリトープ4D polytopes

5.1 頂点の座標

5.2 胞の求め方

四次元の凸ポリトープでは、辺の両端の距離が最短になる点の組が辺になります(ここで扱う形はすべて辺の長さがそろっています)。各頂点 v について、隣の頂点への方向を v の反対側の超平面へ中心投影すると、三次元の「頂点図形」が得られます。その凸包の各面が、v を含む胞に対応します。胞の超平面の法線は、3本の辺ベクトルに直交するベクトル(一般化した外積)で求め、その超平面上にある頂点をすべて集めて胞とします。胞の形は、超平面内の三次元座標で凸包をとって得ます。結果は、オイラー標数 V − E + F − C = 0 で確かめています(20種すべてで成立)。

5.3 3次元への投影

シュレーゲル図
手前の胞の中心を通る軸の上、胞の超平面のすぐ外側に視点を置いて透視投影します。視点が手前の胞の超平面だけを越え、他の胞の超平面を越えない範囲(rf < d < dmax)に置くと、手前の胞が外殻になり、残りの胞がその内側をすき間なく埋める図になります。
透視投影(頂点を手前に)
頂点の方向に視点を置く透視投影です。
平行投影
第4座標を落とすだけの投影です。正八胞体を頂点から平行投影すると菱形十二面体の外形になります。

5.4 4次元回転

XW・YW・ZW の3つの平面での回転を組み合わせます。シュレーゲル図の視点は立体にごく近いため、回転すると視点が立体に入り込みます。そこで回転量に応じて、視点を外接球の外(半径の1.8倍)まで滑らかに下げます。

5.5 胞の3D展開

三次元の展開図と同じ考え方を一段上げたものです。四次元では、親と子の胞が共有する面(2次元)を固定したまま、その面に直交する2次元の平面の中で回転させます。この平面は二つの胞の法線で張られ、法線のなす角だけ回すと子の胞が親と同じ超平面に開きます。胞どうしの重なりは、三次元の分離軸定理(面の法線と、辺どうしの外積を軸にする)で判定します。正百二十胞体や正六百胞体でも、重なりのない一つながりの展開図が得られます。展開の途中は、透視投影から平行投影へ滑らかに切り替えて、開ききったときに胞の本来の形が見えるようにしています。

5.6 模型

6. 表示と操作Display and interaction

7. 多面体に関する数学史年表Timeline

年代は通説によります。「頃」は年代に幅があることを示します。

年人物・出来事
前360頃プラトン『ティマイオス』。4つの元素と宇宙を5つの正多面体に対応させる(「プラトンの立体」の名の由来)。
前300頃ユークリッド『原論』第13巻。5種の正多面体の作図と、それ以外に存在しないことの証明。
前3世紀アルキメデス、13種の半正多面体(アルキメデスの立体)を記述。著作は失われ、4世紀のパップスの記述で伝わる。
1509ルカ・パチョーリ『神聖比例論』。レオナルド・ダ・ヴィンチによる骨組み表現の多面体図を収める。
1525アルブレヒト・デューラー『測定法教則』。正多面体やいくつかのアルキメデスの立体の展開図を示す(展開図の最初期の印刷例)。
1568ヴェンツェル・ヤムニッツァー『正多面体の遠近法』。多面体の変形を精緻な版画で描く。
1619ヨハネス・ケプラー『世界の調和』。アルキメデスの立体13種を体系的に再発見し、小星型十二面体と大星型十二面体を記述。
1630頃ルネ・デカルト、多面体の頂点の角欠損の総和が 4π(720°)になることを記す(オイラーの公式の先駆け)。
1750年代レオンハルト・オイラー、凸多面体の頂点・辺・面の数について V − E + F = 2 を示す。
1809ルイ・ポアンソ、大十二面体と大二十面体を発見(ケプラーの2種と合わせて星型正多面体4種)。
1813オーギュスタン=ルイ・コーシー、星型正多面体がこの4種に限ることを証明。
1852頃ルートヴィヒ・シュレーフリ、四次元以上の正多胞体を分類(四次元は6種)。生前は広く知られず、1901年に出版。
1865ウジェーヌ・カタラン、アルキメデスの立体の双対(カタランの立体)を記述。
1880ワシントン・ストリンガム、四次元の正多胞体を独立に見いだし、図示する。
1880年代ヴィクトル・シュレーゲル、四次元多胞体を三次元に描く方法(シュレーゲル図)を考案。
1884エドウィン・A・アボット『フラットランド』。二次元の住人の目で高次元を描いた小説。
1888チャールズ・H・ヒントン『A New Era of Thought』。「テッセラクト」の語を用いる。
1900アリシア・ブール・ストット、四次元多胞体の三次元断面を研究し、「ポリトープ」の語を英語圏に広める。
1938H. S. M. コクセターほか『The Fifty-Nine Icosahedra』。正二十面体の星型59種。
1948コクセター『Regular Polytopes』。正多面体・正多胞体研究の基本文献。
1954コクセター、ロンゲット=ヒギンズ、ミラー、一様多面体(75種)を列挙。
1965ジョン・H・コンウェイとマイケル・ガイ、四次元の一様多胞体を調べ「大反角柱」を発見。
1966ノーマン・ジョンソン、正多角形の面だけでできた凸多面体92種(ジョンソンの立体)を列挙。1969年、ザルガラーが完全性を証明。
1971マグナス・ウェニンガー『Polyhedron Models』。紙で多面体を作る模型制作の古典。
1975G. C. シェパード、凸多面体の重なりのない辺展開の存在を問う(デューラーの問題。未解決)。
1990年代ジョージ・W・ハート、コンウェイの多面体表記を体系化してウェブで公開。1997年に正準化の数値アルゴリズムを発表。
2000ロバート・ウェッブ「Stella: Polyhedron Navigator」発表。のちの Great Stella/Stella4D へ発展する。
2026Hyperfolder 公開。

8. 参考文献References

古典・基本文献

  1. ユークリッド『原論』第13巻(邦訳: 中村幸四郎・寺阪英孝・伊東俊太郎・池田美恵 訳『ユークリッド原論』共立出版, 1971)。正多面体が5種に限ることの古典的な証明。
  2. H. S. M. Coxeter, Regular Polytopes, 3rd ed., Dover, 1973.(邦訳: 一松信 監修『正多胞体』丸善出版, 2022)正多面体・正多胞体の体系的な解説。四次元の座標や投影の考え方の基礎。
  3. H. S. M. Coxeter, M. S. Longuet-Higgins, J. C. P. Miller, “Uniform Polyhedra,” Philosophical Transactions of the Royal Society A 246 (1954), 401–450.
  4. N. W. Johnson, “Convex Polyhedra with Regular Faces,” Canadian Journal of Mathematics 18 (1966), 169–200.ジョンソンの立体の名称と番号(J1〜J92)の出典。
  5. 一松信『正多面体を解く』東海大学出版会, 1983.

多面体の幾何と展開

  1. Peter R. Cromwell, Polyhedra, Cambridge University Press, 1997.多面体の数学と歴史を広く扱う。年表の多くの項目の確認に用いた。
  2. Erik D. Demaine, Joseph O’Rourke, Geometric Folding Algorithms: Linkages, Origami, Polyhedra, Cambridge University Press, 2007.展開図の存在、重なり、デューラーの問題などの計算幾何学。
  3. G. C. Shephard, “Convex Polytopes with Convex Nets,” Mathematical Proceedings of the Cambridge Philosophical Society 78 (1975), 389–403.
  4. John H. Conway, Heidi Burgiel, Chaim Goodman-Strauss, The Symmetries of Things, A K Peters, 2008.対称性の記述と、多面体の操作表記。

アルゴリズムと模型

  1. George W. Hart, “Calculating Canonical Polyhedra,” Mathematica in Education and Research 6(3) (1997), 5–10.正準化アルゴリズムの出典。
  2. George W. Hart, “Conway Notation for Polyhedra,” Virtual Polyhedra. georgehart.com
  3. Magnus J. Wenninger, Polyhedron Models, Cambridge University Press, 1971; Dual Models, 1983.紙模型の作り方と型紙の古典。
  4. Robert Webb, “Stella: Polyhedron Navigator,” Symmetry: Culture and Science, 2000.

高次元

  1. Thomas F. Banchoff, Beyond the Third Dimension, Scientific American Library, 1990.投影・断面・影による高次元の視覚化。
  2. Edwin A. Abbott, Flatland: A Romance of Many Dimensions, 1884.トップページの紹介文のオマージュの出典。

9. 類似アプリRelated software

名称作者・提供特徴
Great Stella / Stella4DRobert Webb(Software3D)多面体の表示・星型化・展開図印刷の代表的なソフト。Stella4D は四次元の投影・断面・3D展開も扱う。Hyperfolder の構想の出発点。有償(Windows・Mac)。
polyHédronismeAnselm Levskayaコンウェイ表記で多面体を生成するオープンソースのウェブアプリ。
Polyhedra GeneratorAndrew Marshコンウェイ表記による多面体生成のウェブアプリ。
AntiprismAdrian Rossiter多面体を生成・変形するコマンドライン群。正準化などを含むオープンソース。
Pepakura DesignerTama Software一般の3Dモデルを紙工作の展開図にするソフト。のりしろや辺の番号の自動付与。
Poly / Poly ProPedagoguery Software多面体を回転・展開して観察する教育用ソフト。
4D ToysMarc ten Bosch四次元の物体を三次元の断面で見せる物理シミュレーションのおもちゃ。

Hyperfolder の特色は、ブラウザだけで動き無料であること、画面用(対称性)と印刷用(面積効率)で展開図を分けること、四次元ポリトープの投影から立体パズルや棒模型の部材表まで作れること、日本語と英語を切り替えられることです。

10. 類似サイトRelated websites

リンク先の内容は各サイトの運営によるもので、変わることがあります(2026年10月確認)。

11. ライセンスと謝辞License and credits