<< Chapter < Page | Chapter >> Page > |
Listing 17. Set colors and draw squares. |
---|
//Set the color value.
g.setColor(color);//Draw a square of the specified size
//in the specified color at the// specified location.
g.fillRect(col * blockSize,row * blockSize,
blockSize,blockSize);
}//end col loop}//end row loop |
Finally the code in Listing 17 calls the fillRect method of the Graphics class to paint a square of pixels of the specified size at the specified location in the specified color.
This process is repeated for every elevation point on the 3D surface data, producing an output similar to the leftmost image in Figure 1 .
Listing 17 signals the end of the nested for loops. When the code in Listing 17 finishes execution, the 3D surface has been plotted, but it does not yet contain the optional red axes.
Listing 18 tests to see if the value of the axis parameter is true. If so, it uses the information obtained earlier from the getCenter method, along with the setColor and drawLine methods of the Graphics class to draw the optional red axes shown in the images in Figure 1 . These axes always intersect at the center of the image.
Listing 18. Draw the optional red axes. |
---|
if(axis){
g.setColor(Color.RED);g.drawLine(0,vertCenter,2*horizCenter,
vertCenter);g.drawLine(horizCenter,0,horizCenter,
2*vertCenter);}//end if
}//end paint}//end inner class CanvasType0surface |
Listing 18 also signals the end of the overridden paint method and the end of the inner class named CanvasType0Surface .
An object of the class named CanvasType0scale is used to plot the calibration scale that is displayed immediately below the surface plotfor the Grayscale plot format. The beginning of this class and the constructor for this class are shown in Listing 19 .
Listing 19. Beginning of the class named CanvasType0scale . |
---|
class CanvasType0scale extends Canvas{
//Set the physical height of the scale strip// in pixels.
int scaleHeight = 6 * blockSize;CanvasType0scale(){//constructor//Set the size of the Canvas based on the
// width of the surface and the size of the// square used to represent each value on
// the surface.setSize(dataWidth * blockSize,scaleHeight);
}//end constructor |
Basically this class (as well as the other two classes that create calibration scales) operates by constructing an artificial surface, (which is like a long thin board) , positioned such that one end has an elevation of 0 and the other end has an elevation of 255. The length of thislong thin surface is equal to the width of the surface plot for the Grayscale plot format.
The same Grayscale color algorithm is applied to this artificial surface that is applied to the real surface. The result is a linear representation of thecolors produced by the color algorithm from the lowest elevation at 0 to the highest elevation at 255. This result is displayed immediately below the realsurface with the lowest elevation at the left end and the highest elevation at the right end. An example is shown in the leftmost image in Figure 1 .
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?