<< Chapter < Page Chapter >> Page >

The algorithm

As I mentioned earlier, the algorithm goes something like the following:

  • Draw a line connecting every point to its immediate neighbor on the circumference of the circle.
  • Draw a line connecting every other point on the circumference of the circle.
  • Draw a line connecting every third point on the circumference of the circle.
  • Continue this process until the number of iterations satisfies the number of Loops specified by the user.

The code in the outer loop that begins in Listing 15 is responsible for identifying the beginning and ending points for the lines that will be drawnduring one iteration of the outer loop. Given the above information and the embedded comments in Listing 15 , you should have no difficulty understanding the logic in Listing 15 .

Draw the lines

The inner loop in the pair of nested loops is shown in Listing 16 . This loop constructs a series of GM2D04.Line objects and then causes visual manifestations of those objects to be drawn on the off-screen image.

Listing 16 . Draw the lines.
for(int cnt = 0;cnt<numberPoints;cnt++){ if(start<numberPoints-1){ start++;}else{ //Wrap aroundstart -= (numberPoints-1); }//end elseif(end<numberPoints-1){ end++;}else{ //Wrap around.end -= (numberPoints-1); }//end else//Create some interesting colors.g2D.setColor(new Color(cnt*255/numberPoints, 127+cnt*64/numberPoints,255-cnt*255/numberPoints));//Create a line and draw it. line = new GM2D04.Line(points[start],points[end]);line.draw(g2D); }//end inner loop}//end outer loop }//end drawOffScreen

Once again, given what you now know, and given the embedded comments in the code, you should have no difficulty understanding the logic of the code. Note inparticular the requirement to wrap around when the element number exceeds the length of the array containing references to the GM2D04.Point objects that specify the locations of the vertices of the geometric object.

End of the discussion of StringArt01

That ends the discussion of the program named StringArt01 .. It also ends the discussion of all five of the programs that I promised to explain in this module.

Homework assignment

The homework assignment for this module was to study the Kjell tutorial through Chapter 5 - Vector Direction .

The homework assignment for the next module is to study the Kjell tutorial through Chapter 6 - Scaling and Unit Vectors .

In addition to studying the Kjell material, you should read at least the next two modules in this collection and bring your questions about that material tothe next classroom session.

Finally, you should have begun studying the physics material at the beginning of the semester and you should continue studying one physics moduleper week thereafter. You should also feel free to bring your questions about that material to the classroom for discussion.

Run the programs

I encourage you to copy the code from Listing 18 through Listing 21 .Compile the code and execute it in conjunction with the game-math library provided in Listing 17 . Experiment with the code, making changes, and observing the results of your changes. Make certain that youcan explain why your changes behave as they do.

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