計算幾何学入門 Introduction to Computational Geometry

Similar documents
Microsoft PowerPoint - ppt-7.pptx

Math-quarium 練習問題 + 図形の性質 線分 は の二等分線であるから :=:=:=: よって = = = 線分 は の外角の二等分線であるから :=:=:=: よって :=: したがって == 以上から =+=+= 右の図において, 点 は の外心である α,βを求めよ α β 70

Microsoft PowerPoint - ppt-1.pptx

20~22.prt

< D8C6082CC90AB8EBF816989A B A>

Microsoft PowerPoint - ad11-09.pptx

相加平均 相乗平均 調和平均が表す比 台形 の上底 下底 の長さをそれぞれ, とするとき 各平均により 台形の高さ はどのように比に分けられるだろうか 相乗平均は 相似な つの台形になるから台形の高さ を : の 比に分ける また 相加平均は は : の比に分けます 調和平均は 対角線 と の交点を

Microsoft PowerPoint - DA2_2019.pptx

Microsoft PowerPoint - Chapter7.pptx

. 角の二等分線と調和平均 平面上に点 を端点とする線分 と を重ならないようにとる, とし とする の二等分線が線分 と交わる点を とし 点 から に垂直に引いた直線が線分 と交わる点 とする 線分 の長さを求めてみよう 点 から に垂直な直線と および との交点をそれぞれ, Dとする つの直角三

" 01 JJM 予選 4 番 # 四角形 の辺 上に点 があり, 直線 と は平行である.=,=, =5,=,= のとき, を求めよ. ただし,XY で線分 XY の長さを表すものとする. 辺 と辺 の延長線の交点を, 辺 と辺 の延長線の交点を G とする. 5 四角形 は直線 に関して線対称な

vecrot

S02 1 図において = =とする このとき = であることを証明せよ と において = 1 = 2 辺 は共通 より 3 辺 (3 組の辺 ) がそれぞれ等しい よって 合同な三角形の対応する角の大きさは等しい ゆえに = である

離散数学

2015-2017年度 2次数学セレクション(複素数)解答解説

Math-Aquarium 例題 図形と計量 図形と計量 1 直角三角形と三角比 P 木の先端を P, 根元を Q とする A 地点の目の位置 A' から 木の先端への仰角が 30,A から 7m 離れた AQB=90 と なる B 地点の目の位置 B' から木の先端への仰角が 45 であ るとき,

モデリングとは

数学 Ⅲ 無限等比級数の問題解答 問 1 次の無限級数の和を求めよ (1) (5) (2) (6) (7) (3) ( 解 )(1) 初項 < 公比 < の無限等比級数より収束し (4) (2) (3) その和は ( 答 ) であるから 初項 < 公比 となっている よって 収束し その和は よって

Microsoft PowerPoint - DA2_2017.pptx

Microsoft PowerPoint - DA2_2018.pptx

Microsoft PowerPoint - mp11-02.pptx

p tn tn したがって, 点 の 座標は p p tn tn tn また, 直線 l と直線 p の交点 の 座標は p p tn p tn よって, 点 の座標 (, ) は p p, tn tn と表され p 4p p 4p 4p tn tn tn より, 点 は放物線 4 p 上を動くこと

STEP 数学 Ⅰ を解いてみた から直線 に下ろした垂線の足を H とすると, H in( 80 ) in より, S H in H 同様にして, S in, S in も成り立つ よって, S in 三角形の面積 ヘロンの公式 in in 辺の長

【】 1次関数の意味

Microsoft PowerPoint - mp13-07.pptx

Microsoft PowerPoint - 13approx.pptx

ポンスレの定理

テレビ講座追加資料1105

Chap3.key

Microsoft PowerPoint - 05.pptx

2011年度 筑波大・理系数学

二等辺三角形の性質 (2) 次の図の の大きさを求めなさい () = P=Q P=R Q 68 R P (2) (3) 五角形 は正五角形 = F 50 F (4) = = (5) === = 80 2 二等辺三角形の頂角の外角を 底角を y で表すとき y を の式で表しなさい y 2-5-2

ピタゴラスの定理の証明4

2017年度 長崎大・医系数学

数学 ⅡB < 公理 > 公理を論拠に定義を用いて定理を証明する 1 大小関係の公理 順序 (a > b, a = b, a > b 1 つ成立 a > b, b > c a > c 成立 ) 順序と演算 (a > b a + c > b + c (a > b, c > 0 ac > bc) 2 図

2015年度 金沢大・理系数学

< BD96CA E B816989A B A>

Microsoft PowerPoint - 13.ppt [互換モード]

Microsoft PowerPoint - 応用数学8回目.pptx

コンピュータグラフィックス第8回

PoincareDisk-3.doc

ARCHITREND ZERO 汎用コマンド一覧

<4D F736F F D EBF97CD8A B7982D189898F4B A95748E9197BF4E6F31312E646F63>

<8D828D5A838A817C A77425F91E6318FCD2E6D6364>

Microsoft Word - スーパーナビ 第6回 数学.docx

< 中 3 分野例題付き公式集 > (1)2 の倍数の判定法は 1 の位が 0 又は偶数 ( 例題 )1~5 までの 5 つの数字を使って 3 ケタの数をつくるとき 2 の倍数は何通りできるか (2)5 の倍数の判定法は 1 の位が 0 又は 5 ( 例題 )1~9 までの 9 個の数字を使って 3

2018年度 筑波大・理系数学

平成 25 年度京都数学オリンピック道場 ( 第 1 回 ) H 正三角形 ABC の外接円の,A を含まない弧 BC 上に点 P をとる. このとき, AP = BP + CP となることを示せ. 解説円周角の定理より, 4APC = 4ABC = 60, であるから, 図のよ

2014年度 センター試験・数学ⅡB

< F2D30365F8EF68BC68CA48B E6A7464>

PowerPoint プレゼンテーション

2017年度 金沢大・理系数学

2011年度 東京工大・数学

2015年度 岡山大・理系数学

代数 幾何 < ベクトル > 1 ベクトルの演算 和 差 実数倍については 文字の計算と同様 2 ベクトルの成分表示 平面ベクトル : a x e y e x, ) ( 1 y1 空間ベクトル : a x e y e z e x, y, ) ( 1 1 z1

2019年度 千葉大・理系数学

() () () F において, チェバの定理より, = F 5 F F 7 これと条件より, = よって, = すなわち F:F=7:0 F 7 F 0 FO F と直線 について, メネラウスの定理より, = F O 5 7 FO これと条件および () より, = 0 O FO よって, =

2014年度 筑波大・理系数学

Microsoft PowerPoint - 第5回電磁気学I 

Microsoft PowerPoint - ca ppt [互換モード]

Microsoft PowerPoint - algo ppt [互換モード]

2011年度 東京大・文系数学

Microsoft PowerPoint - mp11-06.pptx

<4D F736F F D208C51985F82CD82B682DF82CC88EA95E A>

2014年度 名古屋大・理系数学

目次 1. 図郭のCSVから矩形シェープファイル保存... i 1.1. 変換元のCSVファイル... i 1.2. ダイアログ... i 1.3. 作成するシェープファイル... ii 2. 図郭 TIN DEM 保存 ダイアログ TINについて... 3

Taro-1803 平行線と線分の比

学習指導要領

Microsoft PowerPoint - 9.pptx

Microsoft PowerPoint - 9.pptx

オートマトンと言語

2015年度 京都大・理系数学

2017年度 千葉大・理系数学

学習指導要領

Microsoft Word - NumericalComputation.docx

2018試行 共通テスト 数学ⅠA 解答例

1999年度 センター試験・数学ⅡB

PowerPoint Presentation

1 1. はじめに ポンスレの閉形定理 Jacobi の証明 June 5, 2013 Akio Arimoto ヤコビは [2] においてポンスレの閉形定理に初等幾何を用いた証明を与え ている 大小 2つの円があり 一方が他方を完全に含んでいるとする 大小 2 円の半径をそれぞれ Rr, とする

3D の作図ツールについて 3D 画面を表示すると 以下の新しい作図ツールが表示されます より多くのオプションを見るためには ボタンの右下の小さな矢印 をクリックして下さい 28

公式集 数学 Ⅱ B 頭に入っていますか? 8 和積の公式 A + B A B si A + si B si os A + B A B si A si B os si A + B A B os A + os B os os A + B A B os A os B si si 9 三角関数の合成 si

<4D F736F F D208CF68BA48C6F8DCF8A C30342C CFA90B68C6F8DCF8A7782CC8AEE967B92E8979D32288F4390B394C529332E646F63>

学習指導要領

<4D F736F F D F90948A F835A E815B8E8E8CB189F090E05F8E6C8D5A>

学習指導要領

図形と証明 1 対頂角 a = b ( 証明 ) a+ c= 180 なので a = c b+ c= 180 なので b = c 1 2 1,2 から a = b a と b のように 交わる直線の向かい合う角を対頂角といいます 等しいことは 当然のように見えますが 証明とは

COMPUTING THE LARGEST EMPTY RECTANGLE

Microsoft PowerPoint - 09re.ppt [互換モード]

問 題

重要例題113

線を描く 線ツールをクリックする 原点 ( 青 緑 赤の 3 つの軸が交わるところ ) をクリックする 水平方向 ( 赤い軸と緑の軸がある面 ) にカーソルを動かしクリックする 原点とクリックした点の間に黒い線が描画される 垂直方向にカーソルを動かす 青い線が表示され 青い軸上 と表示される 青い線

前期募集 令和 2 年度山梨大学大学院医工農学総合教育部修士課程工学専攻 入学試験問題 No.1/2 コース等 メカトロニクス工学コース 試験科目 数学 問 1 図 1 は, 原点 O の直交座標系 x,y,z に関して, 線分 OA,OB,OC を 3 辺にもつ平行六面体を示す. ここで, 点 A

Microsoft PowerPoint - DA2_2018.pptx

始めに, 最下位共通先祖を求めるための関数 LcaDFS( int v ) の処理を記述する. この関数は値を返さない再帰的な void 関数で, 点 v を根とする木 T の部分木を深さ優先探索する. 整数の引数 v は, 木 T の点を示す点番号で, 配列 NodeSpace[ ] へのカーソル

座標軸以外の直線のまわりの回転体の体積 ( バウムクーヘン分割公式 ) の問題の解答 立体の体積の求め方 図 1 の立体の体積 V を求める方法を考えてみる 図 1 図 1 のように 軸の から までの長さを 等分する そして とおく とすると となる 図 1 のように のときの 軸に垂直な平面 に

4 次元多面体から空間のかたちをみるー空間が曲がっているとはどういうことか 河野俊丈 2016 年 7 月 7 日学術俯瞰講義 図形から拡がる数理科学

離散数学

Microsoft PowerPoint - [150428] CMP実習Ⅰ(2015) 橋本 CG編 第2回 ベジエ曲線とフラクタル.pptx

umeda_1118web(2).pptx

040402.ユニットテスト

Transcription:

テーマ 6: ボロノイ図とデローネイ 三角形分割 ボロノイ図, デローネイ三角形分割

ボロノイ図とは 平面上に多数の点が与えられたとき, 平面をどの点に最も近いかという関係で分割したものをボロノイ図 (Voronoi diagram) という. 2 点だけの場合 2 点の垂直 2 等分線による分割 3 点の場合 3 点で決まる三角形の外接円の中心から各辺に引いた垂直線による分割線 2 点からの等距離線 ( 垂直 2 等分線 ) を巧みに組み合わせたものである.

ボロノイ図の応用商圏の定義 : 社会地理学への応用植物の勢力圏図ロボティックスへの応用 ( 最も安全な経路の発見 ) ボロノイ図の構成 母点( サイト ) 最初に与えられた点 ボロノイセル各母点の勢力圏 ( その点が最も近くなる領域 ) ボロノイ辺ボロノイセルの境界 Pを入力点 ( 母点 ) の集合とするとき, Vor(P): Pのボロノイ図 V(p i ): 母点 p i のボロノイセル h(p, q): 2 点 pqの垂直 2 等分線で定まる2つの半平面のうち, 点 pを含むものこのとき, V(p) は, すべてのqについてh(p, q) の共通部分をとったもの. i j i V ( p ) h( p, p ). i j

LEDA によるボロノイ図の描画 ボロノイセル ボロノイ頂点 ボロノイ辺 母点 最近は http://www.cs.cornell.edu/ home/chew/delaunay.html など,Web でも数多く存在.

ボロノイ図の性質 縮退がなければ, ボロノイ頂点は 3 つのボロノイセルの共通の頂点である. それらの 3 点を通る円の中心はそのボロノイ頂点である. その円の内部に他の母点は存在しない. 3 つの母点を通る空円中心はボロノイ頂点

新たな母点の挿入 新たな母点が挿入されたとき, まず, その母点を含むボロノイセルを求め, その周上で最も近いボロノイ頂点を求める. そのボロノイセルの母点との垂直 2 等分線を求め, それがボロノイ辺と交わる最初の交点を求め, 次のボロノイセルに移る. このようにして 1 周すれば, そのループの中の部分を切り取れば出来上がり. 挿入された母点

ボロノイ図構成のアルゴリズム 逐次添加法母点を適当な順序に並べた後, ボロノイ図を更新しながら 1 点ずつ加えていく方法. (1) 母点をランダムな順に並び替え,p[1], p[2], p[n] とする. (2) p[1], p[2], p[3] に対するボロノイ図を構成する. Vor(3). (3) for i=4 to n do (4) Vor(i-1) において, 母点 p[i] を含むボロノイセルV[q] を求める. (5) 点 qと点 p[i] との垂直 2 等分線が最初に交差するボロノイ辺を求める. (6) そのボロノイ辺に接する他方のボロノイセルV[r] を求める. (7) q=rとして上記の (5)(6) の操作を繰り返し,q=p[i] となれば終了. (8) 上記の操作で得られたループをボロノイ図に加える. (9) ループの内部のボロノイ辺とボロノイ頂点を削除する. 上記のランダム化アルゴリズムの計算時間の期待値は O(n log n). 最初に母点をランダムな順序に並び替えるのが重要.

練習問題 : 下記の点集合に対するボロノイ図を描け.

ボロノイ図の描画 LEDA を用いると, 母点の集合を点のリスト S として与えると, VORONOI(S, VD); として関数 VORONOI() を呼び出すだけでボロノイ図 VD を有向グラフの形で得ることができる. 表示するには幾何的情報を求める必要がある. GRAPH<circle, point> VD; list<point> S; VORONOI(S, VD); ボロノイ図の頂点 円の情報を与える. 頂点で交わる 3 本のボロノイ辺に関連する 3 つの母点を通る円. ボロノイ図の辺 点の情報を与える. ボロノイ辺に対応する母点 ( 辺の左にあるボロノイセルの母点 )

ボロノイ図の描画 ボロノイ図の頂点 円の情報を与える. 頂点で交わる 3 本のボロノイ辺に関連する 3 つの母点を通る円. 無限遠の頂点 : 無限の半径をもつ円を対応させる v をボロノイ頂点とすると VD[v].center(): ボロノイ頂点 v に関連する円の中心. VD[v].point1(), VD[v].point2(), VD[v].point3(): ボロノイ頂点 v を特徴付ける 3 つの母点. VD.outdeg(v): 頂点 v に接続する辺の本数 (1 なら無限遠点 ) node v; forall_nodes(v, VD){ if( VD.outdeg(v) < 2) continue; 無限遠の頂点は無視 point p = VD.center(); ボロノイ頂点を特徴づける円の中心 W.draw_circle(p, 1, green); ボロノイ頂点を表示 }

ボロノイ図の描画 ボロノイ図の辺 点の情報を与える. ボロノイ辺に対応する母点 ( 辺の左にあるボロノイセルの母点 ) 有向辺であることに注意. 辺 e の反対向きの辺は VD.reverse(e). ボロノイ辺 (u, v) の表示 有限の辺の場合線分 segment(vd[u].center(), VD.center(v)) を描画 一方が無限遠点の場合 ( 頂点 v が無限遠点の場合 ) 条件 : VD.outdeg(u>1 && VD.outdeg(v)==1 頂点 v に関連する 3 つの母点のうち 1 番目と 3 番目は必ず異なる ( 定義 ) 3 番目の点から 1 番目の点に向かう線分を 90 度回転した方向に頂点 u から半直線を引けばよい. vector vec = VD[v].point3() VD[v].point1(); point cv = VD[u].center() + vec.rotate90(); ray( VD[u].center(), cv) を描画 if(vd.outdeg(u>1 && VD.outdeg(v)==1){ vector vec = VD[v].point3() VD[v].point1(); point cv = VD[u].center() + vec.rotate90(); W.draw_ray( VD[u].center(), cv, blue); }

三角形分割 P: 平面上の点集合すでに引いた線分と交差しない限り P の 2 点を結ぶ線分を引く このようにしてできた図形が三角形分割 出来上がった図形は必ず三角形で構成されている 4 角形があれば もう 1 本線分を引くことができるから 問題 : 何通りも三角形分割は考えられるが その中で最小の内角を最大にする三角形分割を求めよ 実は ボロノイ図の双対グラフとして得られる三角形分割が上の問題の解 ドローネイ三角形分割

ボロノイ図とデローネイ三角形分割を求める定数作業領域アルゴリズム

ボロノイ図とデローネイ三角形分割 p q 垂直 2 等分線

ボロノイ図とデローネイ三角形分割 p q r 3 本の垂直 2 等分線は 1 点で交わる

ボロノイ図

デローネイ三角形分割

ボロノイ図とデローネイ三角形分割

なぜデローネイ三角形分割を計算するのか? 計算されたデローネイ三角形分割をどう利用するか? 通常のシナリオ平面上に点集合 P が与えられたとき, P のデローネイ三角形分割を計算し, 得られた三角形に関する幾つかの操作が効率よく行えるようにデータ構造を構築する. デローネイ三角形分割 = 平面グラフ ( 平面上に描かれたグラフ ) データ構造 : 2 重連結辺リスト (DCEL) DCEL 内の各操作は定数時間で実行できる.

2 重連結辺リスト 可能な操作 1. 全ての頂点を列挙 2. 全ての辺を列挙 3. 面の境界を辿る 4. 各辺について, それに関連する情報を得る. 平面分割 IncidentEdge(v) Origin(e) Next(e) Prev(e)

IncidentEdge(v): 頂点 v に接続する任意の辺 Origin(e) : 辺 e の始点 Next(e) : e が指す面の境界上で e の次の辺 Prev(e) : e の前の辺 デローネイ三角形分割を求めて, それを 2 重連結辺リストの形で表現しておけば, 上記の操作は O(1) 時間で実行可能. 定数作業領域アルゴリズムの場合には, 何も計算しないし, データ構造も構成しない ( メモリがないので ). ゼロ スペースのデータ構造 何か操作が必要になれば, 必要な計算を実行する. そのために O(n) 時間かかるが, メモリは節約できている.

デローネイ三角形分割に対するゼロ スペースのデータ構造 入力データファイルを一度だけ走査することで実行できる操作 : (1) FindIncidentEdge(p): 点 p に接続するデローネイ辺を一つ返す. (2) FindNextIncidentEdge(p, e) 点 p に接続するデローネイ辺の中で e の次の辺を求める. (3) FindNextEdgeOnFace(f, e) 面 f の境界上で e の次のデローネイ辺を求める. ( ここで面はデローネイ三角形を指す ). (4) FindTwinEdge(e) e の双子辺 ( 逆向きの辺 ) を返す.

デローネイ三角形分割 デローネイ三角形分割は, すべての可能な三角形分割の中で, 最小の内角が最大であるという意味で最適な三角形分割である. 観察 1: S: 平面上に与えられた点集合. S の 2 点 p と q を結ぶ線分がデローネイ辺であるための必要十分条件は, S に点 r が存在して,p, q, r で定まる円の内部に S の他の点が含まれないことである. p r q

観察 2: S: 平面上に与えられた点集合. S の点 p が S の別の点 q に最も近い点なら (p, q) はデローネイ辺である. p q 事実 : S の 2 点 p, q を通る空円が存在するなら,(p, q) はデローネイ辺である. 観察 3: S の凸包上の辺はすべてデローネイ辺である.

デローネイ三角形分割を求めるアルゴリズム for S の各点 p S の中で点 p に最も近い点 q を求める. (u, v) = (p, q) repeat デローネイ辺 (u, v) を報告. (u, v) = ClockwiseNextDelaunayEdge(u, v). until( (u, v) = (p, q)) 凸包内部の辺と凸包上の辺に対する時計回りの順で次の辺

ClockwiseNextDelaunayEdge(p i, p j ) 凸包内部の点に対して 次のような点 p k を求めよ (p i, p j, p k ) は時計回りの順, かつこれら 3 点を通る円が最小 ( 半径の意味で ) である. 計算時間は O(n).

ClockwiseNextDelaunayEdge(p i, p j ) 凸包上の辺について v'' u'v'': 辺 u'v' を逆方向に延長したもの角 wu'v'' を最小にする点 w を求める. 計算時間は O(n)

定理 1: 平面上に n 個の点からなる集合が与えられたとき, 定数の作業領域だけを用いて各デローネイ辺をちょうど 1 度ずつ O(n 2 ) の時間で報告するアルゴリズムが存在する. 証明 : デローネイ三角形分割は n 頂点の平面グラフである. したがって, デローネイ辺の本数は O(n) で抑えられる. 各デローネイ辺は O(n) 時間で計算できるので, 定理を得る.

最小全域木 定義 : 点集合 S に対する最小全域木とは, すべての点を連結する木の中で辺長の総和が最小のものである. 性質 : ( ユークリッド ) 最小全域木は, 点集合に対するデローネイ三角形分割の部分グラフである.

性質 : u, v: S の 2 点 (u, v) が MST(S) の辺でない (u, v) よりも短いデローネイ辺だけからなるデローネイ三角形分割の部分グラフでこれら 2 点が連結である. MST を求めるアルゴリズムデローネイ辺を見つけるたびに, その辺より短いデローネイ辺だけからなる部分グラフにおいて, 両端点が連結であるかどうかを判定

MST DT(u, v) DT(u, v) + (u,v) 経路の探索

定理 3: 平面上に与えられた n 点からなる点集合に対する最小全域木を定数作業領域だけで構成する O(n 3 ) 時間のアルゴリズムが存在する.

ボロノイ図を求める定数作業領域アルゴリズム ボロノイ図はデローネイ三角形分割の双対である.

凸包内部の点 凸包上の点 点 p i に関するボロノイ領域を求めるには, 点 p i に接続するデローネイ辺を時計回りの順に求めて, その垂直 2 等分線を次々と求めて行けばよい. 定理 2: 平面上の n 点からなる点集合に対するボロノイ図を定数作業領域だけで構成する O(n 2 ) 時間のアルゴリズムが存在する.