home *** CD-ROM | disk | FTP | other *** search
- PMATTRAC is released to the public for whatever they would like to do
- with it. The code is not the best in programming in the world, more
- just something to fiddle around with. If you have any suggestions for
- improvement, additions, etc, feel free to send them to me. You can
- reach me at:
-
- BIX: cwills (preferred method)
- USMail:
- Cheyenne Wills
- 12 W. Locust St.
- Mechanicsburg, Pa. 17055
-
-
- PMATTRAC was written to play around with some of the graphics functions
- within PM. The primary goal was to see how hard it would be to divorce
- the graphics drawing routines from the PM window management routines. I
- wanted to be able to resize the window and such, so items like WM_SIZE
- had to be handled. The method that I chose to do this was to have a
- "shadow" presentation space, where the drawing routines would do all
- their "drawing" on. And at certain points, the shadow PS would be
- copied over to the window's PS. The method works, but is slow at times
- due to the fact that the entire PS bitmap is copied.
-
- As stated above, the code isn't the best in the world! It was written
- to play around with some ideas. It also doesn't follow Microsoft's
- Hungarian notation (something that I despise), nor does it really follow
- what I guess is traditional window's programming. Some of the code was
- loosely modeled off of code in Charles Petzold's PMMANDEL program and
- several other programs of his.
-
- About what PMATTRACT does on the screen.
-
- PMATTRAC really does do something... there are several little attractors
- that are interesting. I just picked three formulas from some of the
- books that I have laying around (a good collection of attractors is in
- "Exploring the Geometry of Nature" by Edward Rietman).
-
- The three attractors chosen are: Henon attractor, duffing oscillator
- and a KAM curve.
-
- Henon:
- x(n+1) = y(n) + 1 - ax(n)^2
- y(n+1) = bx(n)
-
- Duffing:
- dx/dt = y
- dy/dt = -(ax^3 + cx + bx) + f cos(theta)
-
- KAM curve:
- x(n+1) = x(n) cos(A) - (y(n) - x(n)^2) sin(A)
- y(n+1) = y(n) cos(A) + (y(n) - x(n)^2) cos(A)
-
-
-
-
- Items for improvement and additions
-
- Well.. there are some obvious things that could be added:
- o zoom-in/out
- o speed
- o printing
- o options (like color)
- o adding a 3d transform (the Lorenz attractor comes to mind as using this)
-
-
- Cheyenne
-
-