<< Chapter < Page | Chapter >> Page > |
Listing 25. Processing the other three ranges. |
---|
}else if(((int)data[row][col]>63)&&((int)data[row][col]<= 127)){
int temp = 4 * ((int)data[row][col]- 64);
green = 255;blue = 255 - temp;}else if(((int)data[row][col]>127)&&((int)data[row][col]<= 191)){
int temp = 4 * ((int)data[row][col]- 128);
green = 255;red = temp;}else if(((int)data[row][col]>191)&&((int)data[row][col]<= 254)){
int temp = 4 * ((int)data[row][col]- 192);
red = 255;green = 255 - temp;
}//end else |
The second range produces a smooth gradient from aqua to green. In this range, the green color value is held constant at 255 and the blue color value iscaused to decrease in inverse proportion to the normalized color value.
The third range produces a smooth gradient from green to yellow. (Yellow is produced by mixing equal amounts of red and green.) Within this range, green is held constant at a value of 255 and the value of red increases indirect proportion to the normalized elevation value.
The fourth range produces a smooth gradient from yellow to red. Within this range, the value of red is held constant at 255 and the value of green decreasesin inverse proportion to the normalized elevation value.
A useful homework assignment would be for you to modify the program as follows:
Subdivide the total range into eight sub ranges instead of four as I did. Choose four additional colors that you can produce by mixing variouslevels of red, green, and blue. Modify the code to cause the colors to vary with a smooth gradient through those eight colors in succession.
The rest of the overridden paint method for this class is essentially the same as the code that I explained in Listing 16 through Listing 18 . Having set the current plotting color, the method goes on to paint a square of pixels in that color at the correct location. Then it draws the optional redaxes if specified. Therefore, I won't repeat that explanation. You can view this code in Listing 29 near the end of the module.
The inner class named CanvasType1scale is used to construct a color scale that matches the color algorithm used in the class named CanvasType1surface .
The overridden paint method for this class replicates the color algorithm in the overridden paint method for the CanvasType1surface class.
Except for the difference in the overridden paint method, the structure of this class is the same as the class named CanvasType0scale , which I discussed earlier beginning with Listing 19 . Therefore, I won't repeat that discussion here. You can view the class in Listing 29 near the end of the module.
The class named CanvasType2surface is an inner class used to instantiate an object that plots a surface where each elevation on the surfaceis represented by a color taken from a color palette containing a finite number of colors. As written, the color palette contains 23 different colors and shadesof gray, but you can easily increase that number if you would like to do so.
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?