F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

openGL

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 381    Accepted Submission(s): 133


Problem Description
Jiaoshou selected a course about ¡°openGL¡± this semester. He was quite interested in modelview, which is a part of ¡°openGL¡±. Just using three functions, it could make the model to move, rotate and largen or lessen. But he was puzzled with the theory of the modelview. He didn¡¯t know a vertex after several transformations where it will be.

Now, He tells you the position of the vertex and the transformations. Please help Jiaoshou find the position of the vertex after several transformations.
 

Input
The input will start with a line giving the number of test cases, T.
Each case will always begin with ¡°glBegin(GL_POINTS);¡±.Then the case will be followed by 5 kinds of function.
1. glTranslatef(x,y,z);
  This function will translate the vertex(x¡¯,y¡¯,z¡¯) to vertex(x+x¡¯,y+y¡¯,z+z¡¯).
2. glRotatef(angle,x,y,z);
  This function will turn angle radians counterclockwise around the axis (0,0,0)->(x,y,z).
3. glScalef(x,y,z);
  This function wiil translate the vertex(x¡¯,y¡¯,z¡¯) to vertex(x*x¡¯,y*y¡¯,z*z¡¯).
4. glVertex3f(x,y,z);
  This function will draw an initial vertex at the position(x,y,z). It will only appear once in one case just before ¡°glEnd();¡±. In openGL, the transformation matrices are right multiplied by vertex matrix. So you should do the transformations in the reverse order.
5. glEnd();
  This function tells you the end of the case.
In this problem angle,x,y,z are real numbers and range from -50.0 to 50.0. And the number of functions in each case will not exceed 100.
 

Output
For each case, please output the position of the vertex after several transformations x,y,z in one line rounded to 1 digits after the decimal point , separated with a single space. We guarantee that x,y,z are not very large.
 

Sample Input
1 glBegin(GL_POINTS); glScalef(2.0,0.5,3.0); glTranslatef(0.0,1.0,0.0); glVertex3f(1.0,1.0,1.0); glEnd();
 

Sample Output
2.0 1.0 3.0
 

Hint

In this sample, we first let the vertex do ¡°glTranslatef(x,y,z);¡± this function, then do ¡°glScalef(x,y,z)¡±.
 

Author
Water Problem SecKill Expert
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-11-25 22:06:49, Gzip enabled