ベクトル aoj 計算幾何 射影

CGL_1_A 射影

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

目次

問題

http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=CGL_1_A

解説

射影を求めるアルゴリズムについては以下を参照.

射影

解答

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
void project(Vector2 start_, Vector2 end_, Vector2 p) {
    Vector2 v = end_ - start_;
    Vector2 op = start_ + v * (v.dot(p - start_) / v.norm());
    cout << op.x << ' ' << op.y << endl;
}

#define MAX_N 1001
Int N;
Vector2 start_, end_, p;

void input() {
  cin >> start_ >> end_ >> N;
  while (cin >> p) {
    project(start_, end_, p);
  }
}

int main() {
  cout.precision(15);
  input();
}