Exercise 6

Exercise 5 | | Exercise 7

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.

Exercise 5 | | Exercise 7