Skip to main content

contains_by_ray_crossing

Function contains_by_ray_crossing 

Source
pub fn contains_by_ray_crossing(poly: &[[f64; 2]], p: [f64; 2]) -> bool
Expand description

レイキャスト(偶奇則)だけで内包を判定する。BOUNDARY_TOL_MM の帯を一切見ない。

辺上ちょうどの点の扱いは辺の向きしだいで内側にも外側にもなるため、点を どの領域に帰属させるかを決める用途に使ってはならないcontains_excluding_boundarycontains_including_boundary を使う)。

本関数は、床の荷重分配が格子のセル中心を「多角形の中か外か」で数え上げる走査 (squid_n_load::floor)のように、点に帰属先を与えるのではなく面積を積む 用途のためにある。この走査に公差の帯を持ち込むと、辺から 1 mm 以内に中心を持つ セルが内外どちらの判定でも数から漏れ、荷重面積が落ちる(危険側)。