(^) lab 1b - cse 694L

Joshua A. Levine
levinej@cse.ohio-state.edu

Surface Plot
Contour Plot
"Artist" Plot
Non-Euclidean Plot

Surface Plot

Below we show the surface plot of our function.



We've plotted our function over the rnage of -2 < x,y < 2. Using VTK we drew 2500 points on this function with this tcl script. I chose to let VTK color it with the default lookup table, however I did smooth the drawing by calculating the normals on the surface.

Visually, I believe this presents the user with quite a lot of information, but still in a tasteful way. In particular, I've left the interfaces to rotate the data around, and the CubeAxes follow with the rotation well.

However, there are some flaws with the design. In particular, there's a decent amount of occlussion making it hard to see some data values. Plus I'm not sure the colors are the best choice. Finally, if i had had more time, I would have tried to give some sort of interactivity to the user to allow them to read what a particular f(x,y) value is on the graph. Also, it would have been nice to allow the user to adjust the x,y ranges.



nav1

Below we show a contour plot of our function.



This function has been plotted in the same domain as above, but this time we've drawn it using 50 contours ranging between the value of -0.65 < z < 1.01. The color lookup table is the same as well. Details can be found in this tcl script.

There are some merits using this sort of diagram as opposed to the above one. Obviously, it is very easy to see where values are equivalent since they are drawn with the same contour. Also, because lines are used instead of a surface there is much less occlussion.

Otherwise the same visual cues are present; a color bar to indicate Z value, the Cube axes, and the title are clearly displayed making it easy for the user to determine what they're looking at. While the contour reduces some flaws as discussed above, if given more time I feel that more interactivity (as discussed above) would have been a boon to this data representation.



"Artist" Plot

Our third task was to develop a novel/artistic representation of the data, below we show our attempt.



The graph above shows the same function, but there are a number of changes. First, instead of coloring by the z value of the function, I chose to color by the magnitude of the first derivative. Thus, higher values indicate areas of faster change in z while lower values indicate slower change. In this way, the viewer gets more data in view with little sacrifice to readability.

My other changes were more programmatic. The second change was adding a color table to this picture to help make the colors more intuitive. In particular, I've chosen a more saturated red shade for faster ("hotter") change, while a less saturated blue has been used for lower values (slower or "colder" change). Whether or not these are more intuitive is in the opinion of the viewer.

Finally, I increased the resolution of the plot to 10000 points, in an attempt to smooth the data more and make it more visually appealing. In aprticular, at some areas there were crackings in the polygons at lower resolution. More VTK details can be found in this tcl script.



Non-Euclidean Plot

Our final task was to implement a non-Euclidean representation of the data. For this I chose to do stereographic projections, which in the inverse maps a plane onto a sphere in a non-Euclidean way. However, because of the mapping, I chose to increase the domain on the function plot to -10 < x,y < 10 so that it would cover more of the sphere. Below is the revised plot:



Definitely, a more interesting plot with the additional peaks and valleys. Below are the results of the stereographic projection onto the sphere. To calculate a point on the sphere, imagine a sphere situated on the plane with the south pole at the origin. The point on the sphere that corresponds to the point on the plane can be found by drawing a line from the north pole, through the sphere, into the plane. Where this line intersects the sphere, that point is mapped to the plane. Thus, the north pole is the point at infinity.



This was implemented using this tcl script. Drawing the data in this way helps the viewer see additional symmetries in the data. In particular, the concentric latitude lines on the sphere indicate points that are equidistant from the origin. Thus, are striped "easter egg" pattern shows that points which are equidistant from the origin all have the same f(x,y) value.

There are both good and bad points to this representation. First, one can extend the range of the data so that a point at infinity can be indicated on the sphere. However, because of the mapping, there's an unequal resolution since all of the points outside of the [-10,10] range are mapped to the northern cap. However, it does provide a way to fit the plane onto the sphere and also allows one to see different symmetries.