CS 585 GUI Project 2 A strange attractor Due 12/1/2005

A strange attractor exists in a system where behavior is random within a constraint. Usually the results are unexpected. The algorithm we shall use is the Sierpinski (Gasket) Triangle with modifications beyond triangles. You should design for an implementation in C# using Windows Forms.

Attractor with N control points:

  1. Specify "n" control points (vertices) in the display window. Let CP[0] .. CP[n-1] represent the control points. I suggest an array of 10 to 30 control points (e.g., maxN = 10). If you have n control points you could add control point n in location (n + 1) mod maxN. Set points with mouse clicks.
  2. Assume n >= 3
  3. X = a randomly selected control point ( CP[0] .. CP[n-1]).
  4. Y = a second randomly selected control point (assume not X).
  5. Z = the point halfway between X and Y.
  6. Draw Z.
  7. X = Z.
  8. Continue steps 4 through 7 until the user terminates drawing the attractor.
Required in the solution Additional ideas

You might want to consider some of these (not part of the required specification). Complete the required assignment before designing and implementing any extensions... Extensions can help your grade, but not much -- do these only if they are of interest to you.

Submission

Submit the executable application, persistent data for 2 attractors, and all source files on electronic media (floppy, zip, and cd -- do not compress any files) in an 8 by 11.5" folder (I will provide some). If you want you can also submit a compressed (zip) file of the project directory in addition to the uncompressed files above. You do not need to print the source files - I'd rather search them with an editor to find what I want to read. Submit printed versions of:

Groups

You can work in groups of 2 if you wish. Each group has one submission and grade. If a member is not contributing their "fair-share" to the project the group can divorce before September 30. The group must share all work done up to the divorce. An email must be sent to me and the other member of the group requesting a divorce by 11/22/2005. After 8/30/05 groups can't divorce. This is a "no fault" divorce class.

Using Interface Builders

You can use an interface builder for the second assignment. I suggest Visual Studio .NET or Sharp Developer.
Warning. Regardless of the interface builder you use (if you use one) your software design should follow reasonable OOP principles and source code must be readable. When using interface builders many students tend to only use classes not to derive or design classes. Simply dragging and dropping an application together often generates a very ugly design and source listing. Your design and style are evaluated as well and how your application works and looks.