[SOLVED] Computer Graphics-Lab Assignment 3 

30.00 $

Programming resource
Digital learning resource
Category:
Practical programming resource
Suitable for guided study and reference
Tutor guidance available when needed

Description

5/5 - (1 vote)

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!).

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.     Expected result: Uploaded LabAssignment3-1.mp4

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
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:

C
Translate by -0.1 in x direction
R
Reflection across the origin
1
Reset the triangle with identity matrix
D.     Transformations should be accumulated (composed with previous one) unless you press ‘1’.

i.          Be sure: gComposedM = newM @ gComposedM

ii.         You’ll need to make ‘gComposedM’ as a global variable.

E. Files to submit: A Python source file (Name the file whatever you want (in English).

Extension should be .py)

Resource details

Understand the Task Before You Use the Resource

Review the requirements, identify the programming concepts involved, study the implementation and test your understanding with your own examples and modifications.