## Description

Introduction In this assignment we will use the OpenGL graphics API to create and display a three-dimensional

image of a 20-sided Icosahedron. The Icosahedron is the largest possible Platonic Solid figure. All faces of the

Icosahedron are equliateral triangles, with 5 triangles meeting at each vertex. The Icosahedron has a total of 12

vertices. The project skeleton code provides you with the three-dimensional vertex points, and a list of the vertices for

each of the equlateral triangles. In this set of vertices, each vertex is exactly one unit from the 0,0,0 point, which is the

center of the Icosahedron. The skeleton code also provides for a main program that calls one of several test cases, as

follows.

1. Test 1 – Draw the Icosahedron. Simply draw the Icosahedron in 3–D space and display it from any viewing

point of your choosing. The result should look similar to the figure below. Be sure to draw both the triangles

polygons (the blue faces in this figure) and the polylines (the white lines in this figure). GRAD STUDENTS

make each face a different color (use any algorithm of your choosing).

2. Test 2 – Idential to test 1, but add a 10 hertz (update every 100ms) and animation rotation about both the x and

y axes. You should rotate approximately 1 degree on each update.

3. Test 3 – Start with the Icosahedron and find the center point of each edge of each of the 20 triangles. Next create

a vector from the 0,0,0 point to the midpoint of each edge. These midpoints will NOT be one unit from the enter.

Extend these vectors to be exactly one unit from the origin, and then subdivide the original triangle into four

smaller triangles, with the vertices all being one unit from the origin. GRAD STUDENTS make each face a

different color (use any algorithm of your choosing). The result should look similar to the figure below.

1

4. Test 4 – Identical to test 3 but adding rotation as in test 2.

5. Test 5 – A command line argument will specify the depth of the subdividing the rectangles. Test 3 is a depth

of one (subdivide the triangles just once). For a depth of two, take each of the smaller triangles after the depth

1 subdivision and divide each of those into four smaller triangles. Continue the subdividing until the desired

depth is reached. Do not try a depth more than 5 or so, as it will take forever and use excessive memory. The

figure below shows a depth of 4.

6. Test 6 – Identical to test 5 but adding rotation as in test 2.

2

Copying the Project Skeletons

1. Log into deepthought19.cc.gatech.edu.cc using ssh and your prism log-in name.

2. Copy the files from the ECE6122 user account using the following command:

/usr/bin/rsync -avu /nethome/ECE6122/Icosahedron .

Be sure to notice the period at the end of the above command.

3. Change your working directory to Icosahedron

cd Icosahedron

4. Copy the provided icosahedron-skeleton.cc to icosahedron.cc as follows:

cp icosahedron-skeleton.cc icosahedron.cc

5. Then edit icosahedron.cc to create your code for the test cases.

Turning in your Project. Turn in your project by using the turnin-ece6122 or turnin-ece4122 script depeneding on

your section.

3