Description
1. Write down a Python program to draw a rotating triangle.
A. Set the window title to your student ID and the window size to (480,480).
B. Draw a triangle using render() function below (DO NOT modify it!).
+ 2021_ITE0000_2019000001
+ LabAssignment3/
+ 1/
– 1.py
+ 2/
– 2.py
+ 3/
– 3.py
C. Expected result: Uploaded LabAssignment3-1.mp4
i. Do not mind the initial angle of the triangle.
D. The triangle should be t rad rotated when t seconds have elapsed since the program was
executed.
E. You need to somehow combine a rotation matrix and a translation matrix to produce the
expected result.
F. Files to submit: A Python source file (Name the file whatever you want (in English).
Extension should be .py)
2. Write down a Python program to draw a transformed triangle.
A. Set the window title to your student ID and the window size to (480,480).
B. Draw a triangle using render() function of prob 1 (DO NOT modify it!).
C. If you press or repeat a key, the triangle should be transformed as shown in the Table:
Key Transformation
W Scale by 0.9 times in y direction
E Scale by 1.1 times in y direction
S Rotate by 10 degrees counterclockwise
D Rotate by 10 degrees clockwise
X Translate by 0.1 in x direction
def render(T):
glClear(GL_COLOR_BUFFER_BIT)
glLoadIdentity()
# draw cooridnate
glBegin(GL_LINES)
glColor3ub(255, 0, 0)
glVertex2fv(np.array([0.,0.]))
glVertex2fv(np.array([1.,0.]))
glColor3ub(0, 255, 0)
glVertex2fv(np.array([0.,0.]))
glVertex2fv(np.array([0.,1.]))
glEnd()
# draw triangle
glBegin(GL_TRIANGLES)
glColor3ub(255, 255, 255)
glVertex2fv( (T @ np.array([.0,.5,1.]))[:-1] )
glVertex2fv( (T @ np.array([.0,.0,1.]))[:-1] )
glVertex2fv( (T @ np.array([.5,.0,1.]))[:-1] )
glEnd()
C Translate by -0.1 in x direction
R Reflection across the origin
1 Reset the triangle with identity matrix
D. 7UDQVIRUPDWLRQVVKRXOGEHDFFXPXODWHGFRPSRVHGZLWKSUHYLRXVRQHXQOHVV\RXSUHVVěĜ
i. Be sure: gComposedM = newM @ gComposedM
ii. <RXĜOOQHHGWRPDNHěJ&RPSRVHG0ĜDVDJOREDOYDULDEOH.
E. Files to submit: A Python source file (Name the file whatever you want (in English).
Extension should be .py)
F. Expected result



