home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Professional
/
OS2PRO194.ISO
/
os2
/
prgramer
/
pmattrac
/
read.me
< prev
Wrap
Text File
|
1990-10-14
|
2KB
|
68 lines
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