mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
27767e72ab
2800-2899
39 lines
963 B
C++
39 lines
963 B
C++
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <math.h>
|
|
struct node
|
|
{
|
|
double x,y,z;
|
|
}p,q,r,t,t2,t3,t4,t5;
|
|
int main()
|
|
{
|
|
double a,b,hu;
|
|
while(~scanf("%lf%lf%lf",&p.x,&p.y,&p.z))
|
|
{
|
|
scanf("%lf%lf%lf",&q.x,&q.y,&q.z);
|
|
scanf("%lf",&hu);
|
|
a=atan(q.y/q.x);
|
|
r.x=sqrt(q.x*q.x+q.y*q.y);
|
|
r.y=0;
|
|
r.z=q.z;
|
|
b=atan(r.x/r.z);
|
|
t.x=p.x*cos(a)+p.y*sin(a);
|
|
t.y=-p.x*sin(a)+p.y*cos(a);
|
|
t.z=p.z;
|
|
t2.x=t.x*cos(b)-t.z*sin(b);
|
|
t2.z=t.x*sin(b)+t.z*cos(b);
|
|
t2.y=t.y;
|
|
t3.x=t2.x*cos(hu)-t2.y*sin(hu);
|
|
t3.y=t2.x*sin(hu)+t2.y*cos(hu);
|
|
t3.z=t2.z;
|
|
t4.x=t3.x*cos(b)+t3.z*sin(b);
|
|
t4.z=-t3.x*sin(b)+t3.z*cos(b);
|
|
t4.y=t3.y;
|
|
t5.x=t4.x*cos(a)-t4.y*sin(a);
|
|
t5.y=t4.x*sin(a)+t4.y*cos(a);
|
|
t5.z=t4.z;
|
|
printf("%.3lf %.3lf %.3lf\n",t5.x,t5.y,t5.z);
|
|
}
|
|
return 0;
|
|
}
|