計算幾何学 射影

射影

射影
Feb. 2, 2020, 1:52 p.m.

目次

解説

ある点PからあるベクトルOAが作る直線へ影を落としてできるベクトルOBを射影という.
ベクトルの始点が原点である場合は、

$$
\vec{OB} = \frac{\vec{OA} \cdot \vec{OP}}{\|OA\|^2}
$$

始点がそれ以外の点の場合は、

$$
\vec{OB} = \vec{O} + \frac{\vec{OA} \cdot \vec{OP}}{\|OA\|^2}
$$

コード

1
2
3
4
5
6
7
8
Vector2 project(Vector2 start_, Vector2 end_, Vector2 p) {
    Vector2 v = end_ - start_;
    return start_ + v * (v.dot(p - start_) / v.norm());
}

# 関連する問題

<n-link to="/ja/competitive/aoj/cgl_1_a">AOJ CGL_1_A 射影</n-link>