幾何 メモ

二直線の交点

http://www.fumiononaka.com/Business/html5/FN1312003.html

 

線分と頂点の距離

線分の端点との距離or直線との距離 で場合分け

 

線分と線分の距離

交差する場合は0

しない場合は端点の組み合わせを全探索

 

点の多角形に対する内外判定

crossing number algorithmで実装

自己交差多角形は見なかったことに...

https://www.nttpc.co.jp/technology/number_algorithm.html

 

凸多角形の直径

キャリパー法

蟻本235p

 

円と直線の交点

projectを使って交点の中点を求めてやる

螺旋本 393p

 

円と線分の交点

 

円と直線の交点を求めた後、線分の端点と交点の位置関係をccwで見る

f:=線分の端点が円と交わらない時true

 

円と円の交点

円の中心が同じ場合、交わらない場合を分ける

三辺の長さが分かる三角形(c1.r,c2.r,交点)に対して余弦定理

 

円と、ある点からの接線の交点

円の中心を基準として極座標を取ると楽

C++の逆三角関数のおかげで極座標が扱いやすく、うれしい

三角関数を使う時は定義域エラーを吐かせないように注意 適宜min,maxを噛ませる

 

二円の共通接線(接点の座標)

図を描けばわかる

共通内接線、共通外接線 +本数に応じて場合分け

一本の時はacosが壊れないように注意

 

点Oを中心とする円と、三角形OABの共通面積

線分ABと円弧の位置関係で三通りに場合分け

線分ABが円の内側→三角形

線分ABが円の外側→扇形

線分ABが円と交わる→三角形と扇形に分割

符号付き面積を計算したい時の角度はatan2を使う(asinとかだとと定義域が足りない)

atan2に入れる値は適当な回転(拡大)行列から求める

点(1,0)を点Bに移す行列、点(1,0)をAをx軸に関して対象に移動した点A' に移す行列を列ベクトル(1,0)に掛けることで、欲しい偏角を持つ点を表す列ベクトルが得られる

 

 

二円の共通面積

二つの円の中心と、どちらかの交点を結ぶ三角形から角度を求めて足し引きをする

 

 

外接円の位置ベクトル

外接円 - Wikipedia

 

 

最小包含円

https://www.jaist.ac.jp/~uehara/course/2014/i481f/pdf/ppt-7.pdf

 

そのうちやる→回転拡大のoperator、3D

 

 

参考(ガン見): https://www.dropbox.com/s/1zxohqaxrb87uft/Gifted_Infants_The_University_of_Tokyo___erated_files-job_14.pdf?dl=0