<< Chapter < Page | Chapter >> Page > |
The code in Listing 19 establishes the size of the calibration scale surface.
Listing 20 shows the overridden paint method that is used to plot the calibration scale for the Grayscale plot format.
Listing 20. The overridden paint method. |
---|
public void paint(Graphics g){
//Vary from white to black going from 255// to 0.
Color color = null;//Don't draw in top row. Leave it blank to
// separate the scale strip from the// drawing of the surface above it.
for(int row = 1;row<scaleHeight;row++){
for(int col = 0;col<dataWidth;col++){//Compute the value of the scale
// surface.int scaleValue = 255 * col/
(dataWidth - 1);//See the class named
// CanvasType0surface for explanatory// comments regarding the following
// color algorithm.int red = scaleValue;
int green = red;int blue = red;
color = new Color(red,green,blue);g.setColor(color);
g.fillRect(col * blockSize,row * blockSize,
blockSize,blockSize);
}//end col loop}//end row loop
}//end paint}//end inner class CanvasType0scale |
Because you already understand the color algorithm for the Grayscale plot format, the code in Listing 20 should not require further explanation. This code establishes the elevation level for each point on the calibration surface andpaints the box that represents that elevation in the appropriate color.
The CanvasType1surface class is used to instantiate an object that represents a normalized 3D surface with the colors ranging from blueat the low elevations through aqua, green, and yellow to red at the high elevations with a smooth gradient from 1 to 254.
(The lowest elevation with a value of 0 is colored black. The highest elevation with a value of 255 is colored white.)
The center image in Figure 1 is an example of this plotting format.
The beginning of the class and the constructor for the class named CanvasType1surface are shown in Listing 21 .
Listing 21. Beginning of the class named CanvasType1surface. |
---|
class CanvasType1surface extends Canvas{CanvasType1surface(){//constructor
//Set the size of the Canvas based on the// size of the surface and the size of the
// square used to represent each value on// the surface.
setSize(dataWidth * blockSize,dataHeight * blockSize);
getCenter();}//end constructor |
The beginning of each of the three classes that produce the three plotting formats is essentially the same. Therefore, the code in Listing 21 is essentially the same as the code in Listing 14 and should not require further explanation. The significant differences between the three classes lie in theiroverridden paint methods.
The overridden paint method for this class, which begins in Listing 22 , is probably the most complex of the three.
Listing 22. Beginning of the overridden paint method. |
---|
public void paint(Graphics g){
Color color = null;for(int row = 0;row<dataHeight;row++){
for(int col = 0;col<dataWidth;col++){
int red = 0;int green = 0;
int blue = 0; |
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?