ルーローの三角形(定幅図形)
「四角い穴を開けるドリル」とロータリーエンジンの心臓部
- 1
- ルーローの三角形は、円以外で『どの方向から測っても幅が一定』な定幅図形(ていふくずけい)
- 2
- 正方形の内側をぴったり沿って回転できるため『正方形の穴を開けるドリル』として実用化
- 3
- マツダの代名詞『ロータリーエンジン(ヴァンケルエンジン)』のローター形状の基礎理論
なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値
なぜ生まれたのか?
『転がしてガタつかないのは円だけ』という日常の直感を心地よく裏切る幾何学の傑作。19世紀の機械工学者フランツ・ルーローが機構学の研究から再発見した。
身につく武器・思考力
円以外の回転機構の設計思想、定幅曲線の幾何学的性質、機構学(キネマティクス)の基礎感覚
実社会・ITでの活躍現場
- •木工・金属加工用『角穴ドリル(スミス・ロータリービット)』
- •マツダ・コスモスポーツやRX-7を走らせた『ロータリーエンジン』の燃焼室ローター
- •ギターのピック(角が丸く持ちやすく、弦への当たりが均一)
- •イギリスの50ペンス硬貨や20ペンス硬貨(自動販売機で詰まらず正確に幅を識別できる七角形の定幅図形)
Layer 1 — 直感・シミュレーター
スライダーで角度を変えて、ルーローの三角形が正方形の枠の中を四隅までぴったりなぞりながら回転する様子を観察しよう。円との形状の違いや、定幅性(どこで測っても直径が一定であること)を可視化できます。
💡 ここに注目!
三角形が回転しても、正方形の4辺から決して離れず、常にぴったり接触し続けています。 これが「定幅図形」の性質です。中心(赤点)が静止せず、四つ角へわずかに公転しながら動くことで、角を丸く残しながら正方形の98.8%を削り取ります(角穴ドリルの原理)。
ルーローの三角形と同じ『幅(直径)w』を持つ円と比べたとき、周の長さ(外周)はどうなるでしょうか?
Layer 2 — 定義・受験・証明
定義
**ルーローの三角形(Reuleaux Triangle)**とは、正三角形の3つの頂点をそれぞれ中心とし、一辺の長さを半径 とする円弧で囲まれた図形である。
**定幅図形(Curve of constant width)**とは、2本の平行線でどの角度から挟んでも、その間隔(幅)が常に一定値 になる閉曲線のこと。円はその最も自明な例であるが、ルーローの三角形も幅 の定幅図形である。
公式・数理モデル
証明・導出
**バルビエの定理(Barbier's Theorem, 1860年)**: すべての定幅 をもつ凸図形の周長 は、形状によらず常に厳密に となる。
ルーローの三角形の周長を直接計算すると: 半径 の円の中心角 の円弧が3本あるため、
これは幅 の円(直径 )の周長 と完全に一致する。
また、正三角形の面積と3つの弓形面積を足し合わせることで、面積公式 が導出される。ブラシュケ・ルベーグの定理により、ルーローの三角形は**『同じ幅をもつ定幅図形の中で最も面積が小さい(最も尖った)図形』**であることが証明されている。
押さえておきたいポイント
- 幅が一定なので、2枚の板で挟んで転がしても上の板は上下に揺れず、水平にスムーズに進む
- 正方形の内側で回転させたとき、正方形の面積の約98.77%をカバーし、四隅の角だけがわずかに丸く残る
- 硬貨に採用される理由:正円でなくても幅が一定なら、自動販売機のコインセレクターで径を正しく判定できる
本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。
Layer 3 — 工学応用・現場実装
角穴ドリルの軌道計算とCAM工具パス生成
ルーローの三角形を中心軸をずらしながら偏心回転させることで、ほぼ完全な正方形の穴を切削加工するCNC工作機械の工具軌道アルゴリズム。中心点 は楕円状の微小な閉曲線を逆位相で公転する。
1// ルーローの三角形の輪郭頂点群と偏心回転パス生成2export interface Point2D {3 x: number;4 y: number;5}67/** ルーローの三角形の輪郭ポリゴンを生成(幅 w, 分割数 segments) */8export function generateReuleauxVertices(w: number, segmentsPerArc = 30): Point2D[] {9 // 正三角形の頂点 (外接円半径 R = w / sqrt(3))10 const R = w / Math.sqrt(3);11 const centers: Point2D[] = [12 { x: 0, y: -R }, // 上13 { x: -w / 2, y: R / 2 }, // 左下14 { x: w / 2, y: R / 2 }, // 右下15 ];1617 const points: Point2D[] = [];18 // 各頂点を中心とし、対向する弧(角度範囲 60度)を描く19 const angles = [20 { start: Math.PI / 6, end: Math.PI / 2 },21 { start: (5 * Math.PI) / 6, end: (7 * Math.PI) / 6 },22 { start: (3 * Math.PI) / 2, end: (11 * Math.PI) / 6 },23 ];2425 for (let i = 0; i < 3; i++) {26 const c = centers[(i + 2) % 3]; // 対向する中心点27 for (let s = 0; s <= segmentsPerArc; s++) {28 const t = s / segmentsPerArc;29 // 弧の始点・終点補間30 const th = angles[i].start + t * (angles[i].end - angles[i].start);31 points.push({32 x: c.x + w * Math.cos(th),33 y: c.y + w * Math.sin(th),34 });35 }36 }37 return points;38}
この領域の最高峰単元です。工学実装コードを動かしてみましょう!
次に学ぶならコレ!おすすめトピック
この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元