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

「AOJ81~90」の編集履歴(バックアップ)一覧に戻る
AOJ81~90」を以下のとおり復元します。
*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);
	}
}

復元してよろしいですか?