kanetaiの二次記憶装置

プログラミングに関するやってみた、調べた系のものをQitaに移して、それ以外をはてブでやる運用にしようと思います。http://qiita.com/kanetai

平面幾何(距離)

リポジトリ
TODO:

  • distanceLP
  • distanceLL
  • distanceLS

点間距離だけでなくいろいろあった方が便利なので作っとく

線分 L(\bar{s_ss_e})と点 \vec{p}

 \vec{p} Lへの正射影 \vec{p'}を求めて、 \vec{p'} L上にあれば、 d(L, \vec{p}) = d(\vec{p},\vec{p'})
無ければ、 d(L, \vec{p}) = \min\{ d(\vec{p}, \vec{s_s}), d(\vec{p}, \vec{s_e})\}

//instance method of Point class
public final double distancePS(Line s){
	Point proj = projection(s);
	return proj.intersectsPS(s) ? distance(proj) : Math.min(distance(s.start), distance(s.end));
}
//instance method of Line class
public final double distanceSP(Point p){ return p.distancePS(this); }