Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Projection"
https://onlinejudge.u-aizu.ac.jp/problems/CGL_1_A
・射影
僕が作成、提出したコードは、以下のとおりです。
Aizu Online Judge in C++ #CGL_1_A : Projection
/* Aizu Online Judge in C++ #CGL_1_A : Projection https://onlinejudge.u-aizu.ac.jp/problems/CGL_1_A 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using C=complex<double>; C f(C a,C b,C c){ b-=a; c-=a; return a+b*real(c/b); } int main(void){ int n; double ax,ay,bx,by,cx,cy; cin>>ax>>ay>>bx>>by>>n; while(n--){ cin>>cx>>cy; C com=f(C(ax,ay),C(bx,by),C(cx,cy)); printf("%.8f %.8f\n",com.real(),com.imag()); } return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/