VisExercises
Exercise 5
← Exercise 4 | ● | Exercise 6 →
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.
- Extend the framework to draw a spiral $\vec{p}(\lambda)$ with OpenGL.
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)
- Plot the function with OpenGL using solid quadrilaterals (quads).
- Map the function values to gray scale from black (lowest) to white (highest).
- Print a screen shot of the 3D plot.
← Exercise 4 | ● | Exercise 6 →