※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

「AOJ再挑戦81~85」の編集履歴(バックアップ)一覧に戻る

AOJ再挑戦81~85 - (2014/02/02 (日) 18:14:06) の1つ前との変更点

追加された行は青色になります

削除された行は赤色になります。

+*問81 A Symmetric Point
+http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0081
 
+解法
+数学の歴史に変換や特定の条件を満たす点を求めるための計算式のリストをひたすら作るというものがありました。
+線対称な点を求めるというのもその一つで行列演算にしたがえばいいだけです。
+
+
+ #include<stdio.h>
+ int main(){
+  	double x1,y1,x2,y2,x3,y3,dx2,dy2,dx3,dy3,ab,ansX,ansY;
+ 	while(scanf("%lf,%lf,%lf,%lf,%lf,%lf",&x1,&y1,&x2,&y2,&x3,&y3)!=EOF){
+ 		dx2=x2-x1;
+ 		dy2=y2-y1;
+ 		dx3=x3-x1;
+ 		dy3=y3-y1;
+ 		ab=dx2*dx2+dy2*dy2;
+  		ansX=(dx3*(dx2*dx2-dy2*dy2)+dy3*2*dx2*dy2)/ab;
+ 		ansY=(dx3*2*dx2*dy2+dy3*(dy2*dy2-dx2*dx2))/ab;
+ 		printf("%lf %lf\n",ansX+x1,ansY+y1);
+ 	}
+ }