<< Chapter < Page Chapter >> Page >

You may be wondering why I didn't simply define a single class that can serve both purposes. I probably could have done that. Recall however that this libraryis being designed for clarity. I believe that such clarity is best served by having consistent names for the kinds of itemsrepresented by objects of the classes. Also, it is likely that the definitions of the two classes will be different later when I expand the library to provideadditional capabilities.

The GM2D01.Line class

Kjell tells us that a line segment is the straight path between two points, and that it has no thickness. The class named GM2D01 contains a class named Line that is intended to represent a mathematical line segment as described by Kjell.

Listing 13 is a complete listing of the class named Line . As before, you will find the code that exercises this class and produces the output shownin Figure 5 in the complete listing for the program named PointLine02 in Listing 15 . That code is straightforward and shouldn't require an explanation.

Listing 13 . The static top-level class named Line.
//A fragment from the GM2D01 class //A line is defined by two points. One is called the// tail and the other is called the head. public static class Line{GM2D01.Point[] line = new GM2D01.Point[2];Line(GM2D01.Point tail,GM2D01.Point head){ this.line[0]= tail; this.line[1]= head; }//end constructorpublic String toString(){return "Tail = " + line[0].getData(0) + ","+ line[0].getData(1) + "\nHead = "+ line[1].getData(0) + ","+ line[1].getData(1);}//end toStringpublic GM2D01.Point getTail(){ return line[0]; }//end getTailpublic GM2D01.Point getHead(){return line[1];}//end getTail }//end class Line

Represent a line segment by two points

Since a line segment is the straight path between two points, a line segment in this library is represented by an object that encapsulates two Point objects. One of those points is referred to as the tail and the other is referred to as the head , simply as a means of distinguishing between the two ends of the line segment.

The constructor for the Line class requires two points as incoming parameters and stores them in a two-element array of type GM2D01.Point . Beyond that, the code in Listing 13 is straightforward and shouldn't require further explanation.

The GM2D01 library is purely mathematical

The library named GM2D01 is purely mathematical. By that, I mean that the library doesn't provide any mechanism for rendering objects of the ColMatrix , Line , Point , or Vector classes in a visual graphics context. That capability will be added to the next version of the library in the next module.

Documentation for the GM2D01 library

Click here to download a zip file containing standard javadoc documentation for the library named GM2D01 . Extract the contents of the zip file into an empty folder and open the file named index.html in your browser to view the documentation.

Although the documentation doesn't provide much in the way of explanatory text (see Listing 16 and the explanations given above) , the documentation does provide a good overview of the organization and structure of the library. Youmay find it helpful in that regard.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Game 2302 - mathematical applications for game development. OpenStax CNX. Jan 09, 2016 Download for free at https://legacy.cnx.org/content/col11450/1.33
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Game 2302 - mathematical applications for game development' conversation and receive update notifications?

Ask