<< Chapter < Page
  Digital signal processing - dsp     Page 18 / 24
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

Paint a colored square

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.

Draw 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 .

Beginning of the class named CanvasType0scale

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

How it works

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 .

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Digital signal processing - dsp. OpenStax CNX. Jan 06, 2016 Download for free at https://legacy.cnx.org/content/col11642/1.38
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?

Ask