VisExercises

## Contour Plotting with OpenGL

Exercise (6a)

• Sketch the two line segments for extracting the iso line for iso value = 0.25 for the following quad consisting of two triangles:
1 x---x 0.5
|  /|
| / |
|/  |
0 x---x 0


Exercise (6b)

• Implement a function extract_intersection_point($\vec{x1}$, $\vec{x2}$, v) that calculates the intersection point of the iso line with a line segment [$\vec{x1}$,$\vec{x2}$] for a given iso value $v$ according to the lecture.
• The function gets two vertices (class v3d) and two scalar values (being identical to the height of the vertices) and the iso value (float) as parameter.
• It checks whether or not an intersection occurs.
• If an intersection occurs, we compute the respective intersection point p.
• If we find intersection points, we plot the corresponding line segment.
• This is equivalent to sending each intersection point that was found directly to the graphics
• Implement a function extract_isoline($\vec{ a }$, $\vec{ b }$, $\vec{ c }$) that extracts the iso line of a triangle with the three corner points $\vec{ a }$, $\vec{ b }$, $\vec{ c }$ by calculating the intersection points for its three edges.
• Visualize the above test case (exercise 4a) with OpenGL in 3D:
• Draw a solid quad with corner colors being mapped from function value to gray scale.
• Draw the iso line with line segments in red.
• The hidden-surface removal with the z-buffer may prevent the line to show up properly.
• In this case, slightly offset the line or the quads vertically to prevent z-fighting.

Home work (6c)

• Given the function $f(x,y)=cos(4\sqrt{x^2+y^2}+atan2(x,y))\frac{1}{0.5+\sqrt{x^2+y^2}}$
• What does the function look like? Guess? Verify!
• Extract the iso contour of the function for the iso value v=0.5 by using marching triangles on a 30×30 grid in the domain [−3,3]x[−3,3].
• Render the contour plot with OpenGL.
• Render a level set by extracting the iso contours of the function for the iso values v=0.1, 0.2 … 1.0.
• Print a screen shot of the level set.