Listings
- Listing 1 . Beginning of the main method.
- Listing 2 . A 3D parabolic surface,
- Listing 3 . Display six surface images.
- Listing 4 . Beginning of the ImgMod29 class.
- Listing 5 . Establish display format for log conversion.
- Listing 6 . Copy the input elevation data.
- Listing 7 . Convert to log data if required
- Listing 8 . Normalize the surface elevation data.
- Listing 9 . The method named scaleTheSurfaceData.
- Listing 10 . Create an appropriate pair of Canvas objects.
- Listing 11 . Add the Canvas objects to the Frame.
- Listing 12 . Register an anonymous WindowListener object.
- Listing 13 . The method named getCenter.
- Listing 14 . Beginning of the class named CanvasType0surface.
- Listing 15 . Beginning of overridden paint method.
- Listing 16 . Instantiate a Color object.
- Listing 17 . Set colors and draw squares.
- Listing 18 . Draw the optional red axes.
- Listing 19 . Beginning of the class named CanvasType0scale .
- Listing 20 . The overridden paint method.
- Listing 21 . Beginning of the class named CanvasType1surface.
- Listing 22 . Beginning of the overridden paint method.
- Listing 23 . Set white and black for max and min values.
- Listing 24 . Process elevations from 1 to 63 inclusive.
- Listing 25 . Processing the other three ranges.
- Listing 26 . The method named getColorPalette.
- Listing 27 . Beginning of overridden paint method.
- Listing 28 . Set the color value.
- Listing 29 . Source code for ImgMod29.java.
General Discussion
Displaying 3D data can be fairly difficult
One of the more difficult aspects of engineering and scientific computing is displaying three-dimensional (3D) surfaces in ways that are meaningful to persons who need to view and to analyze those surfaces. The basic problem isthat it is necessary to display the 3D surface on a 2D media, such as a computer screen.
(At least that was true before the advent of 3D printers. However, as of October 2015, a 3D printer is not readily available for routine use by most people.)
Therefore, some compromise is always required.
Different approaches are available
Various approaches have been devised for accomplishing this objective including:
- Grayscale plots
- Color Shift plots
- Color Contour plots
- Using light and shadows to render the surface in ways that simulate a photograph
- Labeled Numeric Contour plots
- Isometric Drawings
A 3D plotting program
I will provide and explain a program in this module that makes it very easy to display a 3D surface as a Grayscale plot, a Color Shift plot, or a ColorContour plot. The program supports six different plotting formats. Three of those plotting formats are illustrated in Figure 1 .
(The images shown in Figure 1 are different views of the wave-number spectrum resulting from performing a 2D Fourier Transform on a box in thespace domain. The use of 2D Fourier Transforms will be the main topic of a future module.)
Figure 1. 3D views of a wave-number spectrum. |
---|
|
Figure 1 shows the same 3D surface plotted using three different plotting formats. Going from left to right, Figure 1 shows:
- Grayscale plot
- Color Shift plot
- Color Contour plot
Grayscale plot
The plot on the left in Figure 1 is the old standby method in which the elevation of each point on the surface is represented by a shade of gray withthe highest elevation being white and the lowest elevation being black.