<< Chapter < Page | Chapter >> Page > |
Two very similar plotting programs are shown in the listings near the end of the module. The program named Graph01 , shown in Listing 39 , can be used to plot as many as five separate functions, each in its own plottingarea. Examples of the display produce by this program are shown in Figure 1 , Figure 2 , Figure 3 , and Figure 4 . I will briefly discuss this program in the paragraphs that follow.
The program named Graph02 , shown in Listing 40 , can also be used to plot as many as five separate functions. In this case, however, thegraphs produced by the functions are superimposed in the same plotting area. This is simply an alternative display format. I won't discuss any of theparticulars of this program, but if you understand the program named Graph01 , you will have no difficulty understanding this program named Graph02 as well.
This program is designed to instantiate an object of a class file that implements the interface named GraphIntfc01 , and to plot the data provided by up to five functions defined in that class file.
The methods in the class corresponding to the functions to be plotted are named f1 , f2 , f3 , f4 , and f5 .
As you learned in the earlier discussion, the class containing the functions must also define a static method named getNmbr . This method takes no parameters and returns the number of functions to be plotted. If this method returns avalue greater than 5, a NoSuchMethodException will be thrown.
The overall plotting surface is divided into the required number of equally sized plotting areas. One function is plotted on Cartesian coordinates in eachplotting area.
The constructor for the class that implements GraphIntfc01 must not require any parameters. This is because the newInstance method of the Class class is used to instantiate an object, based on a String provided as a command-line argument. The newInstance method can only create objects using a noarg constructor.
If the getNmbr method returns a value less than 5, then the methods that will not be called begin with f5 and work down toward f1 . For example, if the value returned by getNmbr is 3, then the program will call the methods named f1 , f2 , and f3 . While the methods named f4 and f5 must exist in order to satisfy the interface, they won't be called. Therefore, it doesn't matter what those methodsreturn as long as it is type double.
As shown in Figure 1 , the plotting areas have alternating white and gray backgrounds to make them easy to separate visually.
All curves are plotted in black. A Cartesian coordinate system with axes, tic marks, and labels is drawn in red in each plotting area.
The Cartesian coordinate system in each plotting area has the same horizontal and vertical scale, as well as the same tic marks and labels on the axes.
The labels displayed on the axes, correspond to the values of the extreme edges of the plotting area.
The program also compiles a test class named junk , which contains the five required methods plus the method named getNmbr . This makes it easy to compile and test the program in a stand-alone mode.
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?