ei1333's page

ホーム > Wiki

射影・反射

射影

$\mathrm{Projection}(l, p):=$ 点 $p$ の直線 $l$ に対する射影を求める

点 $p$ から直線 $l = \vec {ab}$ に垂線をおろしたときの交点 $x$ を点 $p$ の射影と呼ぶ。

反射

$\mathrm{Reflection}(l, p):=$ 点 $p$ の直線 $l$ に対する反射を求める

直線 $l = \vec {ab}$ を対称軸として点 $p$ と線対称の位置にある点 $x$ を $p$ の反射と呼ぶ。

実装例

Point Projection(const Line& l, const Point& p){
  double t = dot(p - l.a, l.a - l.b) / (l.a - l.b).norm();
  return l.a + (l.a - l.b) * t;
}
Point Projection(const Segment& l, const Point& p){
  double t = dot(p - l.a, l.a - l.b) / (l.a - l.b).norm();
  return l.a + (l.a - l.b) * t;
}
Point Reflection(const Line& l, const Point& p){
  return p + (Projection(l, p) - p) * 2.0;
}