VisExercises

## Plotting with OpenGL

Exercise (5a)

• Model a table with 4 legs using Blender.
• Export the model as .obj, and load and render the model in the qlglwindow.cpp module.

Exercise (5b)

• Draw a scene graph that represents two tables with 4 legs (sketch the graph on paper!).
• Transform the graph into OpenGL commands (on paper).

Exercise (5c)

• Use the Qt frame work to render a table with OpenGL as follows:
• Modify the qlglwindow.cpp module and draw a single table using lglBegin(…) etc. commands.
• Use a white quad (LGL_QUAD) for the table top and brown lines (LGL_LINES) for the four legs.
• Draw two tables using the matrix stack.
• Optional: Draw 10+ rotating tables.

Exercise (5d)

• Extend the framework to draw a spiral $\vec{p}(\lambda)$ with OpenGL.
• $\vec{p}(\lambda) = (cos\pi\lambda,sin\pi\lambda,\frac13)^T\frac1{\lambda}, \lambda\in[1,10]$
• Use the vec3 class of the glVertex frame work to represent points in 3D space.
• Implement a function $f(\lambda)$ that calculates and returns one 3D point on the parametric curve.
• Use line segments to represent the spiral → lglBegin(GL_LINE_STRIP).
• Color the spiral from red to blue.
• Let the spiral rotate.
• Optional: Draw the three axis of the local coordinate system of the spiral.
• Optional: Let the viewer oscillate up and down (using the sine function). Keep the center of the spiral in focus.
• Optional: Draw multiple rotating and colored spirals.

Home work (5e)

• Given the function $f(x,y)=x^2e^{-x^2}y^2e^{-y^2}$
• Use gnuplot to plot the function
set isosample 30
splot [-3:3][-3:3] x*x*exp(-x*x)*y*y*exp(-y*y)

• Plot the function with OpenGL in [−3,3]x[−3,3] with a grid of 30 by 30 lines.
• Exaggerate the heights.

Home work (5f)

• Map the function values to gray scale from black (lowest) to white (highest).
• Print a screen shot of the 3D plot.