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

「AOJ81~90」の編集履歴(バックアップ)一覧に戻る

AOJ81~90 - (2011/08/14 (日) 06:07:18) の1つ前との変更点

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

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

+*0081 A Symmetric Point
+http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0081
+教科書通りに線対称行列を書くだけ。
 
+
+#include<stdio.h>
+#include<math.h>
+
+int main(){
+	double xs[3],ys[3],vx,vy,x,y,len,sin1,cos1,sin2,cos2;
+	while(scanf("%lf,%lf,%lf,%lf,%lf,%lf",&xs[0],&ys[0],&xs[1],&ys[1],&xs[2],&ys[2])!=EOF){
+		vx=xs[1]-xs[0];
+		vy=ys[1]-ys[0];
+		len=sqrt(vx*vx+vy*vy);
+		sin1=vy/len;
+		cos1=vx/len;
+		sin2=2*sin1*cos1;
+		cos2=cos1*cos1-sin1*sin1;
+		vx=xs[2]-xs[0];
+		vy=ys[2]-ys[0];
+		x=vx*cos2+vy*sin2+xs[0];
+		y=vx*sin2-vy*cos2+ys[0];
+		printf("%lf %lf\n",x,y);
+	}
+}