You are on page 1of 67

MagicDesigner - Overview

Magic Designer Overview

This computer program is an exact emulation of a toy which was sold years ago called Magic Designer . It also once
had the name Hoot Nanny. It is made out of metal and comes with circular paper and colored pens.

Here is a description of this toy and how it is used: Original Instructions in PDF

This program uses trigonometry to figure out how to draw these designs. Without getting too technical this is how it
http://akatz712.freehostia.com/main.html (1 of 3)7/3/2009 7:38:30 PM
MagicDesigner - Overview

works:

To draw a design, the paper is rotated a full circle. The position of the pen moves around due to the motion of the
gears. The program takes many samples and asks, where is the pen at this point? Because the number of pixels is
not infinite (typical computers have 1024 by 768 or 800 by 600) a finite number of samples is all that is needed to get
the maximum possible accurate drawing. The length of the two arms is known and the position of the pegs (which are
those pins standing on the gears) is calculated relative to a common center. Then, one of the possible two points
where the circles made by those two arms swinging around their pegs (imagine that the arms were not connected to
one another) intersect, is where the pen is located at that moment. This becomes a colored pixel.

The following is snapshot of the computer program. Pieces of it and how it is used are on the HELP PAGES.

Download from Source Forge

Free Download:

--> ** NEW 2009 Browser Version of Magic Designer **<--

Tested with latest Firefox 3, Internet Explorer 8,7,6, Opera 9, Google Chrome 2, Safari 4.

HELP PAGES Download Version OTHER PAGES

http://akatz712.freehostia.com/main.html (2 of 3)7/3/2009 7:38:30 PM


MagicDesigner - Overview

Physical Parameters of the metal designer


Basic
Programming Details including Math
Advanced
I would like to know who my user community is:
Common
Andrew Katz's Email
Ellipse Controls
Browser Version (2007) of Magic Designer
Button Operations
Third Party Links related to Magic Designer
Status Line and Keyboard
My other stuff on the Web
Notes My Favorite useful sites

Users are invited to email to me their My Employment Resume


saved designs (as MGS files). I will add
them to this site. Thanks. Ken Katz's book on Science and God

Jewish Sites

Peabody The Penguin's Curve A Graph:

http://akatz712.freehostia.com/main.html (3 of 3)7/3/2009 7:38:30 PM


http://www.1stingames.com/gamesdata/magicdesigner/index.pdf

Embedded Secure Document


The file http://www.1stingames.com/gamesdata/magicdesigner/index.pdf is a secure document that has
been embedded in this document. Double click the pushpin to view.

http://www.1stingames.com/gamesdata/magicdesigner/index.pdf7/3/2009 7:38:32 PM
Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForge.net

Find and develop open-source software Welcome, Guest! Log In | Create Account

enter keyword Search


● Find
Software

● Develop SourceForge.net > Find Software > Complex Curved Shapes Generator Programs

Community

Complex Curved Shapes Generator Programs by akatz712
● Summary
● Site Support
● Files

● About ● Support

● Develop

Complex Curved Shapes This computer program is an exact emulation of a toy which was sold years ago called Magic
Generator Programs Designer. There are 2 versions - MS Windows one written in Euphoria and C and one written for
the Web for people who do not have a Windows computer.
Screenshot

View more screenshots

http://complexshapes.sourceforge.net

Games/Entertainment, Graphics, Mathematics

Project Feed Go
Show: Everything
Subscribe
● Screenshot Added
akatz712 added a screenshot of Magic Paper

12:58AM on Jul 02 2009 by akatz712

● Screenshot Added
akatz712 added a screenshot of Magic Parameters

12:57AM on Jul 02 2009 by akatz712

● Magic Designer Magic Designer v1_2 file released: MagicDesignersetup_v1_2.exe

Here is a list of enhancements since May 23, 2007:


-- Added PDF printing using "Larry"s bezier smoothing
-- Used Cairo for drawing.
-- Added multiple designs draw capability.
-- Fixed Help localization
-- Changed defaults to solve mirror image bug and ...

08:46PM on Jul 01 2009

● Magic Designer V0.95.0 file released: MagicDesigner_v0950.zip

-- Fixed refresh bugs - clearing circle, blanking messages.


-- GUI resizing and status line changes to support 120 DPI.
-- Fixed Zoom and Circle directional bug.
-- Clean up code for copy to clipboard.
-- Rearrange buttons and remove styles on ...

11:41PM on May 23 2007

● Magic Designer V0.91.0 file released: MagicDesigner_v0910.zip

-- Added a Help button to connect to Help


-- Fixed some bugs with repainting
-- Added button to copy drawing area to clipboard

11:17PM on May 15 2007

● Magic Designer V0.90.0 file released: MagicDesigner_v0900.zip

Added the ability to automatically repaint the drawing area in the Windows application.

07:18PM on May 03 2007

http://sourceforge.net/projects/complexshapes/ (1 of 2)7/3/2009 7:38:42 PM


Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForge.net

● Magic Designer V0.80.0 file released: MagicDesigner.zip

This is the first release here.

10:38PM on Apr 29 2007

Sponsor Link
Play the best Trading Card Game in the World

About Find Develop Community Help


SourceForge Software Software Copyright © 2009 SourceForge, Inc. All rights reserved. Terms of
● SourceForge ● Site
● About ● Search ● Start a Forums Documentation Use
SourceForge Software Project ● The Blog ● Submit Support
● Contact Us ● Browse by ● Project ● @sourceforge Requests
● Jobs @ SF Category Help on Twitter ● Site Outages
Related Projects
● Advertising ● Most Wanted ● Calendar ● Feedback
Popular ● New ● Hide In Picture
Overall Projects ● matheval
● Most ● Object Oriented Euphoria
Active
● Euphoria Programming Language
Overall
● wxEuphoria

Complex Curved Shapes Generator Programs


Actions

● Report inappropriate content

http://sourceforge.net/projects/complexshapes/ (2 of 2)7/3/2009 7:38:42 PM


Download Magic Designer 1.2 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia

Keywords

Home / Windows / Others / Miscellaneous Report spyware

WINDOWS CATEGORIES:
Magic Designer 1.2
● Antivirus

● Authoring tools

● CD/DVD Tools

● Compression tools

● Desktop Enhancements

File managers

Downloads: 781 Add to download basket Tell us about an update
● Internet

IPOD TOOLS

User Good (3.5/5)
● Mobile Phone Tools ● Rating: 18 user(s)
Rated by:
● Multimedia

● Network Tools
Developer: Andrew Katz | More programs
● Office tools
License / Price: Freeware / FREE
● Others

● PORTABLE SOFTWARE Size / OS: 1.4 MB / Windows All


● Programming Last Updated: July 3rd, 2009, 14:33 GMT [view history]
● Science / CAD
Category: C: \ Others \ Miscellaneous
● Security

● System View more screenshots (2) Read user reviews (0) Add a review Refer to a friend
● Tweak Subscribe
● UNIX

● Windows Widgets

http://www.softpedia.com/get/Others/Miscellaneous/Magic-Designer.shtml (1 of 3)7/3/2009 7:38:53 PM


Download Magic Designer 1.2 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia

NEWS ARCHIVE >> Magic Designer description


SOFTPEDIA REVIEWS >>
WEEKLY HIGHLIGHTS
An easy-to-use program that uses trigonometry to figure out how to draw the designs of the
DVD Cloner toy with the same n
Spyware Doctor
1Click DVD Copy This computer program is an exact emulation of a toy which was sold years ago called Magic Designer. It also once had the name
Hoot Nanny. It is made out of metal and comes with circular paper and colored pens.
Apollo DVD Copy
ABC Amber Magic Designer is an easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same
name.
BlackBer...
Protected Music Without getting too technical this is how it works: To draw a design, the paper is rotated a full circle. The position of the pen
moves around due to the motion of the gears.
Co...
7-DAY TOP DOWNLOAD The program takes many samples and asks, where is the pen at this point? Because the number of pixels is not infinite (typical
computers have 1024 by 768 or 800 by 600) a finite number of samples is all that is needed to get the maximum possible
accurate drawing.
# Program
The length of the two arms is known and the position of the pegs (which are those pins standing on the gears) is calculated
Avira AntiVir relative to a common center.
Personal - Free
Antivirus 9.0.0.403 Then, one of the possible two points where the circles made by those two arms swinging around their pegs (imagine that the
116,525 arms were not connected to one another) intersect, is where the pen is located at that moment. This becomes a colored pixel.

Avira Antivir Virus What's New in This Release: [ read full changelog ]
Definition File
Update July 2, · Added PDF printing using "Larry"s bezier smoothing
2009 · Used Cairo for drawing.
· Added multiple designs draw capability.
87,963 · Fixed Help localization
Windows Live · Changed defaults to solve mirror image bug and design orientation.
Messenger 2009 · Added arm adjustment due to width of physical arms.
· Saving advanced fields to MGS file.
14.0.8064.0206
· Made shift lever edit box editable.
78,828 Banding ellipse improvements:
FreeZ Online TV · There is always an ellipse.
1.12 · A radio is used to edit begin or end or center.
· clicking left button continues with the same ellipse.
68,081 · fine tune with arrow keys, cross hairs
RemoveWGA 1.2 · Use pixmap to do immediate repaints for normal painting of drawing area.
50,610 · Prev Curr Next use press and hold.
· Remove Refresh and dirty since all designs are kept neat at all times.
Y! Multi Messenger · Made two windows. Esc to toggle maximize.
8.x and 9.x · Changed the way Basic/Advanced/circle studs work.
48,645 · Apply number to Undo, Redo, Prev, Next as well as Draw.
· Added buttons size (to show if designs are off page), slow (preview draw), ellipse
Windows Live
· (to hide ellipse).
Messenger · Grouped drawing ap...
8.5.1302.1018
48,622
Softpedia guarantees that
Nexus Radio 3.2.2 Magic Designer 1.2 is 100%
46,964 CLEAN, which means it does
Microsoft Office not contain any form of
2007 malware, including spyware,
38,321 viruses, trojans and
backdoors. [read more >]

http://www.softpedia.com/get/Others/Miscellaneous/Magic-Designer.shtml (2 of 3)7/3/2009 7:38:53 PM


Download Magic Designer 1.2 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia

DVD Shrink
3.2.0.15 magic designer | trigonometrical simulation | accurate drawing | magic designer
TAGS: SHARE THIS
36,195 | trigonometry | trigonometrical
WEEK'S BEST

● Messenger Plus! Li...


Panda Antivirus Pr...

HTML code for linking to this page:
● Microsoft Security...
<a href="http://www.softpedia.com/get/Others/Miscellaneous/Magic-Designer.shtml"><img border="0" src="http://www.softpedia.com/images/softpedia_download_small.gif"/></a>
copy
● AVG Free Edition 8...
● SUPER 2009 Build 36
● Trillian Astra 4.0... Go to top
● Sun Java JRE 6 Upd...
● Ad-Aware - Anniver...
● Windows Vista Serv...
● EVEREST Ultimate E...
● IntelliJ IDEA 8.1....
● Microsoft .NET Fra...
● Nero BackItUp & Bu...
● BitDefender Total ...
● Windows 7 Manager ...
● SUMo 2.6.1.76
● SLOW-PCfighter 1.0...
● Virtual DJ 6.0.1
● Avi2Dvd 0.5 Stable
● Windows 7 Release ...
● Windows 7 High Res...
● Windows 7 Regional...
● OpenOffice.org 3.1...
● VistaCodecs x64Com...
● Yahoo! Zimbra Desk...
● WinRAR 3.90 Beta 4...
● Seven Transformati...
● Vista Rainbar 4.3
● BitComet 1.13 Final
● Microsoft Office S...

SUBMIT PROGRAM | ADVERTISE | GET HELP | SEND US FEEDBACK | RSS FEEDS | ENTER NEWS SITE | ENGLISH BOARD | ROMANIAN FORUM

© 2001 - 2009 Softpedia. All rights reserved. Copyright Information | Privacy Policy | Terms of Use | Update your software | Archive Go
Search
Softpedia™ and the Softpedia™ logo are registered
trademarks of SoftNews NET SRL.

http://www.softpedia.com/get/Others/Miscellaneous/Magic-Designer.shtml (3 of 3)7/3/2009 7:38:53 PM


Browser Version of Magic Designer (Canvas and AJAX)
Left Right Shift DRAW
Line Thickness
F1FFCC SAVE Cancel
Arm Arm Lever 1 clip
A A 2 fine
B B 3 Slow
C C 4
D D Select Color nice
E E
dots
F F Line jagg
G G
H H Back Edit
I I
Undo
J J
K K Redo
L L
M M Prev
N N Curr
O O
Next
P P
Q Q
Start
R R
Load
Save
Show Circle/Ellipse Controls

Size
PDF
MGS

Hide

http://akatz712.freehostia.com/Browser_Version_AJAX_canvas.htm7/3/2009 7:38:59 PM
MagicDesigner - Basic

Help with Basic Parameters of the Magic Designer Windows


Program

In order to make a design you need 5 things to be in place. The pair of pen arms counts as
two. The setting of the shift lever. The circular paper. And a pen. The computer selects a white
paper and thin black pen for you by default.

To summarize this simple process:

1. Make a paper by pressing Max Circle (or make your own ellipse or circle). In 2009, the
Max Circle comes automatically.
2. Make the desired settings. (Letters on both arms, and setting for the shift lever)
3. Press the Draw button.
4. Repeat steps 2 and 3. Or, you can go back to 1.

The very first thing that you can do is to


make your own paper size. There are several
ways to do this. Place the mouse in the
drawing window. Press down on the left
button and hold it. Drag (move) the mouse.
You will see an ellipse being banded
(following) the mouse. You can even leave
the area in the window. To establish an
ellipse as the paper, stop pressing down the
left button on the mouse. On the status line
are three sets of numbers which are feedback
on this process. An ellipse can be thought of
as a rounded rectangle. A rectangle has 4
corners. Pick one corner and its opposite
corner. The Bx,y is pixel coordinates of one
corner and Exy is the pixel coordinates of the
opposite corner. When dragging the mouse,
one or the other or both of these sets of
numbers changes. When done and drawing
designs, the ellipse is the paper for that
design. In the picture here, there is the ellipse
shown which was used to draw the designs in
the middle. And 4 additional ellipses were

http://akatz712.freehostia.com/Basic.html (1 of 4)7/3/2009 7:39:00 PM


MagicDesigner - Basic

made to draw designs in the corners. It would


be like if someone had the physical toy and
made a collage of papers. Of course, in the
program not only can one position the
ellipses, but they can be of different sizes,
and flatness. The Cx,y is the current mouse
pixel position. It is always active whenever
the mouse is inside the window. It does not
take part in the design.

At any time one can press the button which is


a red circle with 'Max' in it. This will make a
circle for you which is the maximum possible
size for the drawing window. The program
was deliberately designed for an 800x600
size screen to max a maximum sized circle of
575.

One can press the Esc key to toggle the size


of the Drawing area back and forth to the
whole physical computer screen. When in full
screen some operations are still available
using the hot keys. The way to hide the
application to the task bar is to click on the
minimize square of the Parameters title bar.
The way to end the application is to click on
the X in the Parameters title bar, since the
Paper section shown here does not have that.

I refer to the arms as left and right, assuming


you are operating the toy. The 'Upper' in the

http://akatz712.freehostia.com/Basic.html (2 of 4)7/3/2009 7:39:00 PM


MagicDesigner - Basic

toy instructions (see pdf) refers to left, and


'lower' refers to right. The term I use is gear
and peg, and these refer to 'crank disc' and
'crank pin'. I also consider the circle stud in a
similar way.

Each of the arms has a letter from A through


R, and the shift lever goes from 10 to 70. The
computer program starts by specifying the
design of 60CC, which is a 6 sided clover.

A good thing to do to start is to copy the


designs in the toy instructions. Most of these
designs are specified in a similar manner.

There are 6 options of where the arms are


located. It is best to visualize this with the
photo of the Magic Designer.:

1. Left arm is on left stud and right arm


is on left gear.
2. Left arm is on left stud and right arm
is on right gear.
3. Left arm is on left stud and right arm
is on right stud. This is how one draws
a permanent circle. Do not confuse
this with the paper emulation where
there is a temporary circle.
4. Left arm is on left gear and right arm
is on right gear. This is the default and
almost all of the time you will use this
setting.

http://akatz712.freehostia.com/Basic.html (3 of 4)7/3/2009 7:39:00 PM


MagicDesigner - Basic

5. Left arm is on left gear and right arm


is on right stud.
6. Left arm is on right gear and right arm
is on right stud.

These options are mutually exclusive and


selected with the radio buttons from left to
right. Some of these options are never used
with the real toy, since the crank handle,
which is used to turn the gears sometimes
interferes with the arms. This is one of many
"issues" which makes a computer different
from a real life toy. See this and others in the
Notes page.

With all circle stud options other than the red


one, the values for advanced parameters are
calculated, but the fields in the Advanced tab
cannot be changed. Changing the circle stud
also is like pressing the Default values button
on the Advanced tab.

http://akatz712.freehostia.com/Basic.html (4 of 4)7/3/2009 7:39:00 PM


MagicDesigner - Advanced

Help with Advanced Parameters of the Magic Designer Windows


Program

The primary reason for Advanced parameters is that the


computer can emulate physically different design toys of
the same general class (center gear with two arms and two
gears). There are things which one can vary to get different
designs. For example, by changing the ratio of the center
gear to the other gears from 6:1 to 5:1, one can draw five
sided rather than six sided designs. I think that they chose
six, since six is more pleasing to the eye. For example,
snowflakes are all six sided.

The Basic and Advanced tabs work together. The Arm


lengths and the left Gear angle are also specified on the
Basic tab. So if you change them in the Advanced tab, it
will make what is on the Basic tab an invalid value. No
letter for the arm is selected, and the shift lever shows as
00. And when one changes what is on the Basic tab, the
Arm lengths and Gear angle are adjusted on the Advanced
tab. Another factor is that the Arms are scaled to the Center
and Gear sizes, so that J is pointing to the smallest design
and A and R basically fit for most designs. So when you
change the Center and Gear, you will see that this also
changes the Arms.

There are two types of numbers on this tab. One are size
units and the other are angle units. The Center is given the
value of 6000, since that is a round number with many
divisors. And, because the radius of the center gear in the
toy is 3 inches. The sizes of the Gears, Peg offsets, and
Arms are all to be considered relative to each other and to
the Center. For example, doubling all of these would
produce an identical design. Take note that the program
tries to prevent duplicate designs, but it does not check this
case.

The sizes of the Center and the Gears is sort of easy to

http://akatz712.freehostia.com/Advanced.html (1 of 3)7/3/2009 7:39:01 PM


MagicDesigner - Advanced

understand. What the Pegs are, is the distance from the


peg (pin in the toy pdf) to the center of the gear it is on.
Note that a peg does not have to rest on a gear. One can
visualize a toy which allows the peg to be pulled out on a
thin plank. The Arms lengths vary based upon what letter
hole is placed on the peg. It does not matter what peg. The
length is the length from the peg to the some possible point
where the arms meet.

The angles are all measured in 10ths of a degree (3600


being a full rotation). The angle uses what is called the
Polar system, where the degrees are increasing counter
clockwise, and 0 (and 360) degrees is pointing due right
(East). North is 90, West 180, South 270. The gears angles
are in relation to the center of the center gear, and the peg
angles are in relation to the center of the gear. One can use
angles greater than 3600. This is most useful when doing
multiple designs and want an angle spread through the
East.

The Basic tab only gives fixed values for the arms (each
letter is 1/12 the size of the center gear) and shift lever (one
degree in a 60 degree range). The Advanced tabs allow
finer adjustments, as well as experimenting with arm
lengths not possible. Keep in mind that many designs
simply cannot be made with arbitrary values, since if the
arms never meet, the program will tell you that in the status
line, and nothing will appear in the draw window. Also, note
that sometimes a design is drawn, and nothing appears in
the draw window. This means that the design is outside of
the visible window. You can edit and clip the design and
draw again to confirm that. And if the circle is also larger
than the window, you can edit it, and shrink it to see what is
drawn.

If you change the value Rotations to be greater than 1, it


will go around the circle that many times. This is only useful
for some values of Center and Gear which do not complete
the design in one rotation. For example, change the Gears
to 4000 (from 1000), you need to have 2 rotations for a
complete design. The GCD button is a tool which will
calculate this for you. However, do not expect it to work in
all cases.

http://akatz712.freehostia.com/Advanced.html (2 of 3)7/3/2009 7:39:01 PM


MagicDesigner - Advanced

The check box Prime should always be checked, except in


rare cases. What this is, is that in the calculation of the
design, the arms can be thought of as making circles. And
two circles will either have no intersection (they are far
apart or one is inside the other), or 2 intersections. And
almost all of the time, what is called the prime intersection
point, is what will make the nicer design. However, it is just
one more thing to experiment with. Advanced tab is all
about advanced experimentation, when one is very
satisfied with Basic tab.

The Default Values button restores the values to what is in


the toy's hardware. It also resets the Basic tab to be CC60,
and makes a max circle.

An Adjust was added which represents the physical


parameter I was previously ignoring, where the arms do not
actually meet in a point. The value of 625 is 5/8 of an inch
between the center of the holes of the arms when they are
closed together. (not when being used.)

Some very interesting effects can be done, which I will not


go into here. I suggest that if anyone finds something
interesting, they email me, and I will update the Notes page
of this site.

http://akatz712.freehostia.com/Advanced.html (3 of 3)7/3/2009 7:39:01 PM


MagicDesigner - Common

Help with Parameters of the Magic Designer Windows Program not


on a Tab

These parameters deal with the line being drawn. There are 4 choices for line
thickness. The default is 1. That is the thinnest and most precise line. However,
when taking snapshots of the drawing window, sometimes one will end up with
a nicer looking graphic later on, with some of the thicker lines. I stopped at 4,
since there is very little visual difference between 3 and 4, so why go to 5.
There is a special effect I found called hollow line. Draw a design with a line
thickness of 3, and then draw the same design again, except match the line
color to the background color, and use a line width of 1. The order of designs is
important.

There are two small square colored buttons. Both show the current selected color as
well as bring up a color selection dialog, to change the color. The button on the left is
for the line being drawn. The button on the right is for the background color. Be aware
that these buttons do not have the 3D depress action when you click on it. That was a
technical trade off. The default line color is black, and the default background color is
white. It is best to change the background color first, since if you change it after alot
of good designs are drawn, they may no longer be visible or not have a nice look. Of
course, one can change the background color at any time, or change any individual
design.

http://akatz712.freehostia.com/Common.html7/3/2009 7:39:02 PM
MagicDesigner - Button Operations

Help with Ellipse Controls of the Magic Designer Windows Program

The purpose of ellipse controls is to allow one to extend the original toy to allow
placement of one or more designs in different places on an imaginary paper. This is
most similar to if one took the papers from Magic Designer and made a scrap book. But
it gives more control, since one can vary both the size and flatness of each ellipse. The
ellipse becomes part of the specification of each design, just like the arm and shift lever
settings.

The Max Circle button replaces the current ellipse with a circle calculated to be the
largest one which is possible with the current drawing area. Initially that would be
575x575. But the area can be resized. On my computer monitor 751x751 is the size after
the Esc key is pressed.

The second button is useful, since an ellipse which is not a circle makes flattened
designs, as one would imagine. Normally one wants a circle, since that is what the toy
used, and what is most visually appealing. So, press on the circle button and it will
change the ellipse into the smaller circle. What I mean by that, is that if an ellipse is 200
tall and 100 wide, the resulting circle will be 100x100.

The next button, which has 4 arrows pointing to the center, will center the ellipse or
circle in the middle of the drawing window. This is most useful if you Esc after you
made your ellipse or circle.

The Ellipse button toggles the visibility of the ellipse. Sometimes the ellipse itself
interferes with being able to see the designs. It is not necessary to press this button if
one wants to use the mouse or other ellipse functions, since the ellipse will be made
visible.

The two sliders are used in zooming. In this picture they are disabled, since Begin is
checked. The left slider is the gross one. It has 20 settings starting at 10 and going to
3810. That is the diameter of the larger axis of the ellipse. The right slider goes from 0
to 199, so when added to the left gives the actual zoomed size. One cannot use the
mouse on the drawing area when in Zoom mode. The arrow keys can also be used and
go smoothly from right to left slider. Remember that when the ellipse is large, it
disappears off the screen both in positive and negative numbers. A design will never be
visible in negative numbers, even though the program will say that it is drawn. The Bxy
and Exy give the extent of the current ellipse. What large ellipses are mainly useful for

http://akatz712.freehostia.com/Ellipse_controls.html (1 of 2)7/3/2009 7:39:03 PM


MagicDesigner - Button Operations

are the JJ designs which are the smallest.

There are four modes selected from the radio set. Begin allows the mouse to be used to
change one corner of the ellipse. The End mode allows changes to the opposite corner.
In the old version of the program, Begin was done when one clicked on the mouse
button, and all dragging was to the End. This new method gives greater control. The
Center mode is used to move the entire ellipse around the drawing area by holding to its
center. And Zoom I just discussed.

http://akatz712.freehostia.com/Ellipse_controls.html (2 of 2)7/3/2009 7:39:03 PM


MagicDesigner - Button Operations

Help with Buttons (like a menu) of the Magic Designer Windows


Program

The program will turn the crank handle for you (in fact it happens so fast that you
are not aware of a handle). That is what the Draw button is all about.

To draw a design, simply press the Draw button. It stands in the center of things,
since it is the most used button. It reads all of the settings and draws a design
according to them. It will usually not let you do the same design twice, since that
tends to confuse things. There are exceptions. But this was mainly to stop a
common mistake, where someone pressed the Draw several times in a row without
changing anything.

There is a Slow button. When this is pressed, the design is drawn much slower
(roughly 25 seconds) in a preview mode so you can see what it will be. You may
like this because it gives the same sensation one had as a child when using the
original toy, and one was anticipating what may happen.

Not all settings are able to produce a design. If the design is impossible to draw,
you will see a message in the status line. In addition to that, some designs are partly
drawn or partly visible. The partly drawn ones are cases where only part of the
design would appear on the paper. This would be the same as if on the original toy,
a design was drawn until one could not do it; one lifted the arms up and placed
them back down when the design became possible again. The toy instructions
specifically tell you not to do this, since it may damage the mechanism.

Clip is checked (default is unchecked) to make sure that the design


appears inside the paper (circle or ellipse). This is more true the real toy,
since we only want to draw on the paper, and not dirty up the toy or jam the
pen somewhere. But most of the time, when a design violates this
boundary it is nice. This is especially true when playing with Advanced tab
parameters.

Fine is checked means to sample the design 360 times rather than 120
times per rotation of the crank. This is rarely needed. If you see the curve to
have some flattening edit it with fine checked to see if that improves it.

http://akatz712.freehostia.com/Button_operations.html (1 of 4)7/3/2009 7:39:03 PM


MagicDesigner - Button Operations

The number field next to Draw is the most powerful new feature of the new
version. It will make that many designs when you press Draw. It starts with
settings at the selected design (either the one last drawn or one reached by
navigation). And morphs to the settings. Most of the possible settings can
be morphed. If one of others (such as Fine or Clip) are different between
selected design and current settings, it will not draw. The two most likely
changes to be made are morphing between ellipses, such as a zoomed
one, and selecting a range in the shift lever. It starts at some delta after the
selected design. An example would be draw CC10 and change the shift
lever to 30 and enter the number 10 and press Draw. It will draw CC:12, 14,
16, 18, 20, 22, 24, 26, 28, 30. It is also important to know that if one
entered 11, that the designs would still get drawn, but they would be drawn
in fractional degrees. These designs cannot be expressed using the Basic
tab, so they would show 00 in the Shift lever when navigating or editing.

There are three ways designs can look on the paper. The standard way is
called Nice. It is a smooth curve using anti-aliasing technology like in PDF
files. Dots shows a dot at each sample point. Dots gives a similar feeling as
Slow, since it shows the speed of how the curve was drawn. Using dots
with larger Stroke shows little squares. Jagged is a jagged curve using no
anti-aliasing. This has the same appearance as the old version of this
program, even though the underlying technique is different. Its main
purpose is to be used for designs to be exported to Paint programs where
one colors in the areas between designs. Anti-aliased designs leave color
residues.

The button with a pencil on it is called an Edit button. You would usually use this,
if you just did a Draw and are not happy with it. It will undo and erase the design
from the screen. It is important to remember that you cannot get a design back if
you press Edit twice in a row.

There are two differences between the Edit and Undo buttons. One is that Edit
changes the design settings and Undo does not. If you do not like the design you
can press either one. If you really change your mind again, you can press Draw
after Edit, or press Redo after Undo.

The buttons under the pencil are Undo and Redo. Each time you Undo a design, it
is added to the Undo stack. And when you press Redo, it takes the design off the
top of the stack and draws it. These buttons, combined with the following buttons I
will discuss, form a completely functional editing package. The one thing lacking
is the ability to change the same thing about several designs at once. The number
next to Draw is also used by Undo and Redo.

http://akatz712.freehostia.com/Button_operations.html (2 of 4)7/3/2009 7:39:03 PM


MagicDesigner - Button Operations

The design suite or session should be seen as list, which you can move from one
end of to the other. Sometimes the order that designs are drawn is important, and
most times it is not. To navigate the designs you can press the Previous and Next
buttons (backwards arrow is previous). The purpose of the current button (blue
circle) is to make sure you know what design is selected. The concept of selecting a
design is very useful if you want to Edit or Undo that one. Also, any designs drawn
from the Draw or Redo buttons is placed after the selected design and before the
following design in this list. This may or may not be useful. If you get confused
about the order, press Previous (or Next) repeatedly. The Previous will cycle to the
last design after the first, and the Next will cycle to the first design after the last.
The way these navigation buttons work, is that you press and hold the button down
for as long as you want to see the design. The design is the only design seen, and
the entire design session is restored when releasing the button using the mouse.
The first column of buttons corresponds to a typical file menu. They are New,
Load, and Save. There is no separate Save as, since the file dialog is versatile. New
can be used as a start over. It removes all of the designs. If you want to restore the
default design settings, use the button on the Advanced tab. The New and Load
button will ask you for a confirmation if you have not saved first. The Load button
will allow you to select a previously saved file. The Load process does not remove
the Undo/Redo stack. So if you want to merge two design sessions, first Undo
everything, then Load, then Redo. The Save button will allow you to save all of the
designs made as well as the current background color setting. It is important to
know, that the actual picture is not being saved. Only the parameters used to make
each design. To save the actual picture, you have two options. The Copy to
clipboard or the PDF buttons.
The Help button allows access to these pages from the Application. Help is
viewed in the web browser.

The copy to clipboard button is the same as an Edit menu's Copy


operation. But what it does is take a snapshot of the drawing area and
place it in the clipboard. The purpose is so that it can then be pasted into
any graphics viewer or painting program. These programs have many of
the image manipulation and printing functions lacking in Magic Designer.
The ellipse used to define the current design is not copied, so it copies
clean.

The PDF button is another form of copy. It will bring up a file dialog to ask where
to save this PDF file. Then the program will create the file and launch the PDF
viewer showing this PDF. Depending on system load and design session
complexity, this can take a few seconds, so please be patient. The PDF is scaled to
the current size of the rectangular paper drawing area. There is a Landscape check
box. This will write the PDF in landscape mode. This makes better use of the PDF

http://akatz712.freehostia.com/Button_operations.html (3 of 4)7/3/2009 7:39:03 PM


MagicDesigner - Button Operations

in most cases, since most of the time the drawing area will be wide screen, and the
PDF is like paper in print out. One can print the PDF using the PDF viewer, or
dynamically scale the designs. This is the main advantage of a PDF over a Paint
program.

The Size button shows the x,y pixel extents of the paper drawing area, and the
design session. This is most useful since designs can be drawn off paper. They are
not actually drawn because of the operating system. But they are known internally.
So if it shows designs off paper, one can resize the drawing area to possibly see
these designs.

http://akatz712.freehostia.com/Button_operations.html (4 of 4)7/3/2009 7:39:03 PM


MagicDesigner - Status Line

Help with the Status Line and Keyboard of the Magic Designer
Windows Program

The status line is divided into 6 subfields (from left to right):

1. Bx,y: The pixel position of the corner the ellipse. Note that it could be the any of the 4
corners.
2. Ex,y: The pixel position of the opposite to Bx,y corner of the ellipse. Remember that this
ellipse represents a virtual paper. These pixel positions can be negative if you zoom. It is
also possible to band an ellipse into negative numbers. The point 0.0 is the upper left
corner of the Drawing area. Unless you resize the program, the bottom right corner is
575, 575. What is shown in this image results when the user presses the Max circle
button.
3. This field is set whenever the mouse is in the drawing window area. It is the current
mouse position. When you leave the drawing window the field is not updated. However, if
holding down the mouse button in the process of banding an ellipse, this field is
continually updated.
4. This shows: 'selected of total' designs. It will show 0 of 0 is there is no designs. And
unless one uses the Prev or Next buttons, these two numbers will always be the same.
When pressing the blue circle button, the selected design can be seen.
5. This is the size of the Undo stack. Every time you press Undo it moves the design from
the total just mentioned. Since the total works like a queue and the Undo is a stack, it is
possible to reorder the sequence that the designs are drawn. When you press Redo, it
draws the last design which was Undo.
6. This is a general message field. Here is a list of all the messages:

● "Drawing..." - when painting the designs


● "Loaded file \"%s\" with %d lines" - When Loading button or when user clicks on MGS file.
● "Design session window copied to clipboard." ; "Failed to open clipboard." ; "Failed to
copy to clipboard."
● "There is nothing to print." - PDF button
● "Paper size:(%d,%d). Designs size:(%d,%d)" - the Size button report
● "Bx,y adjustments" ; "Ex,y adjustments" ; "Move Ellipse by center." ; "Must Use Zoom
sliders or F10,F11, arrow keys to Zoom." - on clicking the radio set under the Ellipse
button.
● "okay, start over" - New button.
● "The ellipse is too small." - Draw button, Slow button

http://akatz712.freehostia.com/Status_Line.html (1 of 3)7/3/2009 7:39:04 PM


MagicDesigner - Status Line

● "Cannot draw multiple designs with no existing design." - Draw button


● "Note: Did not draw duplicate of %3d" - Draw button
● "Cannot draw multiple designs because of differing physical layouts(gear sizes)." - Draw
button
● "Cannot draw multiple designs because of differing Prime Clip or Stroke." - Draw button
● "Error - Selected a design which could not be drawn" - Draw button, Slow button
● "%d designs drawn from desired %d." - Draw button only when > 1 design asked for
● "Nothing to Edit." - Edit button
● The parameters of the selected design - when Prev Curr or Next navigation
● "Nothing to Undo." - Undo button
● "%d designs undone from desired %d." - Undo button
● "There is nothing to save." - Save button
● "Saved file \"%s\"" - Save button
● "Nothing to Redo." - Redo button
● "%d designs ReDone from desired %d." - Redo button

Of the 18 buttons in the application, 13 of them have keyboard shortcuts. Painted on these
buttons is a hint to what these are. Here is a list:

● F1 - Help
● F2 - Undo
● F3 - Redo
● F4 - Previous
● F5 - Current
● F6 - Next
● F7 - Max circle
● F8 - Circle
● F9 - Center
● F10 - Do the current ellipse mode with an up arrow key times 20 (Zoom shrink)
● F11 - Do the current ellipse mode with a down arrow key times 20 (Zoom expand)
● F12 - Go to the next ellipse mode (Begin -> End -> Center -> Zoom -> Begin)
● Ctrl+C - Copy to clipboard
● P - print to PDF
● Esc - toggle full screen for Drawing area.
● Arrow keys - Up Left Down Right - Depends on Ellipse mode. With the exception of
Zoom, the arrow keys move the ellipse in that direction. Begin and End stretch or
compress and Center moves. With Zoom, Up and Left are the same, and Down and
Right same.

The main usefulness of giving these functions above keyboard shortcuts, is so that you can
use most of Magic Designer in this full screen mode. The buttons that are not given keyboard

http://akatz712.freehostia.com/Status_Line.html (2 of 3)7/3/2009 7:39:04 PM


MagicDesigner - Status Line

shortcuts are those which would not make sense. For example, Edit and Draw rely upon seeing
what is in the controls. And typically before Edit, one would press Current. So if the design is
only visible in full screen mode, one can quickly toggle to it, and toggle back and do the Editing
and then Draw. And even though you may not see it being drawn, when toggling back to full
screen, it may be visible.

http://akatz712.freehostia.com/Status_Line.html (3 of 3)7/3/2009 7:39:04 PM


MagicDesigner - Notes

Notes on the Magic Designer Program

Things the program can do that the toy cannot do:

The physical crank sometimes interferes with some drawings. This does not happen on the
computer.

The clipping can be turned off, thus drawing off the paper.

A design can be discontinuous, meaning that parts of it are impossible to draw. This can be
done with the toy, but it is very difficult and can damage it.

Various changes in configurations. This is discussed elsewhere. The physical toy is one case
of a family of complex curved shape generators.

To save what is on the drawing window, one must use a screen capture technique or program.
There is no point for this program to have this capability, since each program is best at what it
was designed to do. Here is a recommended screen capture program: MWSnap

One additional thing to do, which is very popular, is to capture the designs as a picture and
then paste it into a paint program, and color it in. Windows comes with Paint, but I would also
recommend this program: Paint.net

Update May 15, 2007: A function has been added to a new button to copy the drawing window
to the clipboard so it can be pasted into any graphics viewer or paint program. This makes it
unnecessary to use a screen capture program.

Differences between the Windows (Download) version and the Browser Version:

● The Basic parameters are not overridden by the Advanced parameters. This means that
the arms are calculated based upon them, in the same way as the From Basic button
works. And it means that there is no slider for the left Gear angle to go through all 360
degrees. 2009: The design philosophy for both versions is now that the Basic and
Advanced parameters have to work together. And while sometimes things cannot be
expressed in Basic parameters, this must be taken into account.
● The starting angles of the gears and pegs are not in the advanced tab. The reason for

http://akatz712.freehostia.com/Notes.html (1 of 7)7/3/2009 7:39:05 PM


MagicDesigner - Notes

this, is that it is hard to explain. 2009: This is bull. The idea is to have the Browser
version be fully functional. Since 2007 it has become clear that all new software
development in the world is web based.
● Not all circle stud configurations are supported. This is related to the above. 2009 Ditto.
● The prime and not prime check box is not offered. It is thought this would only be useful
with some gear angles. 2009 Ditto.
● The advanced parameters are only offered in a gross way. There are several reasons
for this. One is that it is easier to explain. Two is that there is no need for data validation.
Three is that rotations can be calculated. 2009 Ditto. But as of this date, 6/30/2009, the
Browser version does not have all of the Advanced parameters nor the circle studs.
● No ability to load or save a design session. ** will find a way to do this ** (see below)
This is in Browser version but relies on a server.
● No ability to undo except in reverse of the order drawn. 2009: Now in Browser version.
● No ability to redo or edit a previous design. 2009: Now in Browser version.
● Clipping works differently. It is currently not an option, and works in an absolute way to
the drawing area. In the Windows version it works with an imaginary paper. 2009: Now
in Browser version.
● Make sub drawing areas. With the Windows program this involves placing an ellipse
anywhere, using banding. 2009 Now in Browser version.
● No slow option. It does not apply since Walter Zorn drawing is wait and then pop. I need
to look into canvas for dynamic drawing. 2009: Canvas and javascript timeout allows this.
● Number of samples is fixed at 7200 per rotation due to the slower execution of
javascript. The default for the windows version is 18000, but can be increased, since in
zooming, some designs need more samples. 2009: This issue pretty much goes away.
But both program versions have a 'fine' option which makes 3 times as many samples. It
is rarely needed, though.

Update for April 11, 2007:

The ability to save a design was implemented using a PHP program and the mySQL database
provided by the cp-free server. The rows correspond exactly to what is stored by the Windows
program. One thing I found out, was that PHP will return NOTHING if there is a syntax error.
Also, PHP will make a new page in the browser, so to get back to the drawing requires the
back button. As a side effect of this, I place on that page the text needed for the Windows
program. So, for people who have the Windows program, and make designs with the Browser
version, they can save their designs for loading into the Windows program. In Firefox, if you
save that page as a text file, and name it 'something.mgs', and then load that file into the
Windows version, you will see the exact same designs. Actually, there is a subtle difference,
which deals with the tiny DIVs, and I am not sure why that is. Why the C and javascript
versions would round differently.

http://akatz712.freehostia.com/Notes.html (2 of 7)7/3/2009 7:39:05 PM


MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors. In Windows, the (R,G,B) is stored
with R in the low byte. On the Web, colors are given this text string format: #RRGGBB. Those
are 6 hex digits.

Finally, as of today, the Opera browser does not store the designs (but does store the
background color) to the database. The values in the data is not getting to the PHP for that
part, and I am not sure why.

Internet Explorer has a different problem, which was there all along. Shapes made with Walter
Zorn's library, which is what is used in the Browser program, go away if you use the back and
forward button in the browser. I did a Start button to clean things up, because the browser
refresh was not a clean start for Internet Explorer. However, it is disturbing for these nice
shapes to vanish when they get saved. It seems as if Internet Explorer is not consistent. It tries
hard to maintain values entered into forms, and yet loses the colors too easily. Also, the way
that things are laid out in Internet Explorer is ugly, so that my Advanced parameters which are
hidden, still makes the browser think that it needs to scroll, when it should not. I wonder why
Internet Explorer is the leading browser, with all of these problems.

Update for April 16, 2007:

Using a technique which has been called AJAX, PHP does not need to generate full pages. I
found a way to treat the server as a servant, and leave the client in control. I wrote a general
purpose AJAX PHP caller, based upon something I found online at this site: AJAX Form POST
Request .

I have changed the placement of this exact duplicate session MGS file, which is identical to the
Windows Euphoria version. It is a button to toggle a hidden DIV, just like for the Advanced
parameters. If the user also has the Windows program, they can select and copy using the
mouse the contents of that DIV, and paste it into a text editor like Notepad, and save it as a file.
MGS. Then clicking on it should bring up an identical design to what is seen in the browser.

I never resolved the problem with Opera browser with PHP. But using AJAX seems to have
eliminated that problem.

The other main problem with Internet Explorer, is that it does a scrolling of the browser, even
though the DIVs are hidden from view.

http://akatz712.freehostia.com/Notes.html (3 of 7)7/3/2009 7:39:05 PM


MagicDesigner - Notes

Update for April 21, 2007:

Still to do:

● Get Internet Explorer issues resolved.


● Load a saved design session.
● Look into Canvas and write a browser version which uses this method. The main
advantage I am seeking is animated drawing. See this demo of canvas: Canvas Painter

The problems with Internet Explorer are that the text is not handled in the same way. A blank
line is placed under the text and this makes some things appear larger than they need to be,
like in the Advanced parameters. And, there is a known bug in innerHTML for options in a
select list. But the work around is also giving me some problems. There are many ways to do
the same thing in javascript, and I think creating elements is the most direct method. It turned
out that the innerHTML was not the main issue. Internet Explorer does not use appendChild
method, but uses the add method instead. Actually, things are not that simple. With IE, the
appendChild method works in some cases and not others. I am making use of Walter Zorn's
function chkDHTM having been called to know what to use.

Loading a saved design session makes 3 PHP programs, and I wrote them all with the same
idea. No HTML code or code of any form is generated. PHP is only being used to save or
return the data from SQL database. I came up with the idea to send rows with a linefeed
(ASCII 10) in between each one, and the javascript uses the responseText.split("\n") to get
each line into an array. The other thing I do, which is a bit of extra work, is to use the Windows
program MGS file format in the PHP program.

It turns out that only the Opera browser shows each design as it is being loaded, while IE and
Firefox wait until all of the designs are loaded and it displays them all. Perhaps there should be
a message saying to wait.

I found out that the extra blank lines in Internet Explorer are due to the Forms having margins
around them. To standardize all the browsers to look the same, CSS is used to set the margins
for Forms. I needed Forms because the sliders javascript I am using requires it. Forms makes
the addressing of elements easier, but one can use id in any element to find it globally.

One issue remains. The subtle difference which I mentioned before on April 11. This is due to
the way zoom is used. Both programs do use 531, I think, but when the browser version writes
MGS file it makes a 532. I need to standardize the zoom factor, and make sure MGS are
written okay, and make sure that existing saved designs loaded back are going to give a legal
zoom factor (-12 to 12 with 0 for none).

http://akatz712.freehostia.com/Notes.html (4 of 7)7/3/2009 7:39:05 PM


MagicDesigner - Notes

Update for May 3, 2007:

I have been working on another computer program called Complex Curves Shapes Generator.
The development of this program made me realize that I can leverage all that I had done for
Magic Designer. So, I made a stripped down application which has everything in Magic
Designer other than what appears on the Basic and Advanced tabs. And Complex Curves
Shapes Generator has another method of specifying designs. It is not based on any particular
physical toy, but is loosely based on Spirograph. It actually comes from a Flash program I
found on the web: Isotope 2

Two ideas which I wish to work on with this program are color effects inside a design, and
being able to interact with the design as it is being drawn. I had some problems making the
color routines both callable externally from Euphoria and from inside of the C code. I got
something which works, but I am not sure it is the correct or elegant way to program.

Being able to interact is easier if the whole thing is programmed in Euphoria. So, I also
compared C and Euphoria rewritten versions of the drawing logic. I used a drawing logic which
I fit into that stripped down application which I call Generic Shapes. I felt that I should stay with
C for the drawing, since it is faster. So, I am thinking at both ends. I am thinking for maximum
possible speed, and also for slowness so I can change a design as it is being drawn. Perhaps I
need to maintain both versions, and use the Euphoria drawing logic for the slow side. That is
extra work, and I prefer only having one way, so we will see.

In the course of speed, I finally realized how to fix the number one problem with Magic
Designer and any other drawing program. And that is, that to be professional, it needs to
repaint itself. This is why I am releasing Magic Designer as a next version as soon as possible.

How does this repaint work? It is another extension of the DIV idea. The early versions of
Magic Designer simply plotted a point and a line was drawn from the previous point. And when
I wrote the Browser version, and used Walter Zorn's library, I realized that all curves were a
mass of tiny DIVs. Each of these DIVs has either length or width, a color, a thickness. So, the
program can keep track of these emulated DIVs in the drawing process, like the browser keeps
track of them. It simply has an array of C structures having position, width/length, color,
thickness, and orientation. It takes 16 bytes per DIV and I am allowing 100,000 DIVs per
design. That is the buffer, and when a design is done, it is copied to what length was used.
Magic Designer designs typically have less than 1000 segments (identical word to DIV). And
when Refresh is pressed or when Windows generates a Paint message to the drawing
window, these DIVs are replayed back. This saves the time to recalculate. I found that this is
anywhere from 50% to many times more faster.

http://akatz712.freehostia.com/Notes.html (5 of 7)7/3/2009 7:39:05 PM


MagicDesigner - Notes

Update for May 23, 2007:

There have been many enhancements to the Magic Designer Windows version. The Browser
version has not changed.

● Automatic Repaint.
● Copy to Clipboard.
● Connect to these Help pages from the application.
● Right mouse click to center the ellipse anywhere.
● Esc key to toggle full screen mode.
● 13 buttons have keyboard shortcuts.
● Clean up GUI to make 120 DPI okay.
● Increase usable drawing window from 531 to 552. This means the Browser version will
need to change.

Here is a list of enhancements since May 23, 2007:

-- Added PDF printing using "Larry"s bezier smoothing


-- Used Cairo for drawing.
-- Added multiple designs draw capability.
-- Fixed Help localization
-- Changed defaults to solve mirror image bug and design orientation.
-- Added arm adjustment due to width of physical arms.
-- Saving advanced fields to MGS file.
-- Made shift lever edit box editable.
-- Banding ellipse improvements:
-- There is always an ellipse.
-- A radio is used to edit begin or end or center.
-- clicking left button continues with the same ellipse.
-- fine tune with arrow keys, cross hairs
-- Use pixmap to do immediate repaints for normal painting of drawing area.
-- Prev Curr Next use press and hold.
-- Remove Refresh and dirty since all designs are kept neat at all times.
-- Made two windows. Esc to toggle maximize.
-- Changed the way Basic/Advanced/circle studs work.
-- Apply number to Undo, Redo, Prev, Next as well as Draw.
-- Added buttons size (to show if designs are off page), slow (preview draw), ellipse (to hide
ellipse).
-- Grouped drawing appearances Nice, Dots, Jagged for screen and PDF.
-- Changed the way zoom works to be more accurate with sliders and arrow keys.

http://akatz712.freehostia.com/Notes.html (6 of 7)7/3/2009 7:39:05 PM


MagicDesigner - Notes

The following discusses various challenges faced and overcome in the Browser and Download
versions from April to July 2009.

http://akatz712.freehostia.com/Notes.html (7 of 7)7/3/2009 7:39:05 PM


Physical Parameters of the Magic Designer

Emulator for Magic Designer


Magic Designer is a precision instrument made out of metal with precise measurements. But
more importantly, it is a toy which can produce a multitude of pretty designs on paper. At the
age of 10 in 1966, I got it as a present. I have emulated this instrument on the computer in a
MS Windows application. The purpose of this website is the following:

● Describe how to use the real Magic Designer.


● Describe how the real Magic Designer actually works.
● Describe how I emulated the drawing using a computer algorithm using high school level
mathematics.
● Describe the tools I used to program the computer application.
● Describe how to use my computer application. This section serves as online help. I will
include tips and extra stuff.
● Describe the differences between the real instrument and the computer application, with
the emphasis on how the computer extends on what is possible.
● Show where one can download the computer program with or without source code.
Invite people to contact me with bugs or suggestions.
● To add additional applications as I write them. I am planning to start the emulation of the
famous toy Spirograph.

Using the real Magic Designer is about drawing designs on paper. The paper provided is
circular paper, which is notched to be inserted securely in the notches in the center area.
There is a pair of arms, with holes on each arm, connected at one end. It is similar to a pair of
scissors. However, at the place of connection is a holder for a pen or pencil. To specify one
design, the user places the arms onto pegs on two smaller gears. The holes are marked with
letters from A to R. 'A' produces the longest arm, and 'R' the shortest. 'J' gives an arm length
closest to the center of the paper. The left gear is placed according to a shift lever which can
be set. This lever is in numbers from 10 to 70. So, the user will specify a design with two letters
and a number. For example, 45BC means insert left arm at hole B onto the peg on the left
gear, and insert right arm at hole C onto the peg on the right gear, and slide the shift lever to
45. The shift lever has a metal thing you push down to slide, and once a number is selected,
one lets go and it locks into place. The number 70 gives the maximum distance between the
two gears, and the number 10 gives the minimum distance. To do the actual drawing, the user
places two fingers in finger depressions near the place that the arms are connected, and
provides light pressure so that the pen or pencil point is in contact with the paper. Then with
the other hand, the user turns a crank handle, which in turn moves the center containing the
paper, which also moves the two gears. It takes a full rotation of the center to complete the
design. One will typically draw several (3-5) designs on one paper and be satisfied with the
result. But there is no real limit to the number of designs one can place on one piece of paper.

http://akatz712.freehostia.com/Physical_parameters.htm (1 of 6)7/3/2009 7:39:06 PM


Physical Parameters of the Magic Designer

I had to refer to alot of the hardware of the real Magic Designer to describe how it is used. But
from this point, I will describe the hardware of its internal mechanisms, and no longer mention
the hardware related to the user (such as how to move the shift lever).

There are actually 3 gears which I will call center, left, and right. And the shift lever actually
measures degrees (360 being a circle). A 4th gear of the crank handle is part of the user
related hardware. The shift lever is connected underneath to the left gear. Being able to
emulate magic designer drawing on the computer required a precise measurement of the
hardware. So, I am now jumping ahead a bit by saying that I am treating this designer as polar
coordinates. That means that the center of center is the point (0,0), and 0 radians (and
degrees) is to the far right, and goes in the forward direction counter clockwise. I came up with
the following measurements presented here as a list:

● Diameter of the center = 6 inches


● Diameter of the left and right gears = 1 inch
● The length of the arms = 5 3/4 inches from hole A to the place of joining of the arms.
The measurement for hole R is 1 1/2 inches. [ By the way, R is slightly more than this,
since the holes in the arm go straight down the arm and are not angled to the meeting
point. I have not calculated this distortion. ] What is very important, is that the letter J is
designed to be at the precise center of the center. At 3 1/2 inches, that is the distance
from the center of the center to the center of the gear (s). Of course, the distance from
letter to letter is 1/4 inch.
● The distortion mentioned above has been accounted for in the 2009 version. Measure
the distance between the center of the holes on the arms when the arms are closed
together (not being used). It comes to 5/8 inch.
● The polar angle in degrees of the right gear is fixed at 315.
● The polar angle of the left gear is 225 when the shift lever is 70 and 285 when the shift
lever is 10.
● The distance from the center of the left and right gears to their pegs is 3/8 of an inch.
● Another important measurement is the relative angles of the pegs. What I mean, is that
when the center rotates so does the gears and the pegs move around in a circle. So
what I did, was say that if the right peg is at 0 degrees and the shift lever is at 70, I found
that the angle that the left peg makes on the left gear came to exactly 270 degrees (the
down or towards me direction).

Finally, in addition to this hardware are two fixed pegs known as circle studs. If the user places
the left and right arms onto the left and right circle studs, a circle is drawn on the paper. If the
user places one of the arms on a gear peg and the other on a circle stud, other designs are
possible. I have mentioned this in the user section. But the existence of these circle studs
helped alot in the mathematical understanding of the parameters of the instrument. For the
purpose of this section of this document, the measurements are:

● The right circle stud is at 0 degrees and the left circle stud is at 180 degrees. These are

http://akatz712.freehostia.com/Physical_parameters.htm (2 of 6)7/3/2009 7:39:06 PM


Physical Parameters of the Magic Designer

analogous to the angles of the gears mentioned above and not the angles of the pegs.
Since circle studs are not on gears, one has to imagine them to be. One considers the
peg angles to be 0, as well as the measurement from peg to the center of imaginary
gear to be 0.
● The distance from the circle studs to the center of imaginary gears is 1/4 inch. This
means that the imaginary gears diameter is 1/2 inch.

It is important to recognize, that the ratio of sizes between the gears and the center determines
the symmetry of the designs. In the case of the Magic Designer, there is 6 sided symmetry,
which is the same as the Star of David or a snowflake.

To emulate the drawing on the computer, I thought of it as sampling points and connecting the
dots [later on I decided not to connect the dots, and in 2009 the dots are connected by bezier
curves]. The main intermediate goal for finding a point is to figure out where on the paper the
arms intersect. A standard design takes one full rotation to complete, so that is 360 degrees.
So, samples are taken which correspond to a fixed fraction of that. For example, on a very
slow computer in my first emulation on the Atari computer, circa 1981, I took 360 samples. And
in my computer application, I have decided to sample 18000 times (or every 1/50 of a degree).
In 2009, only 120 samples are needed (360 in Fine mode). But between each sample is a
bezier curve which has its own internal algorithm to draw, and roughly corresponds to 150, so
one can still stay 18000 samples. Obviously, the place on the paper is changing in a very
dynamic way. In fact, it is based on trigonometry (sines and cosines).

The first step to determining the design in the algorithm, is to know the starting parameters,
which are a combination of the hardware measurements and the user's particular design. The
shift lever controls both the starting left gear angle and the left peg angle. The letters of the
arms specifies the arm lengths. It is the movement of the pegs relative to one another that
produces the design itself. That is why circle studs only make circles.

Set up the relative coordinate system. There is a center circle, so I will assign 0,0 to the center
of that circle. And according to the rules of polar coordinates, one can assign 0 degrees or 0
radians to the right direction, and angle increases going counter clockwise.

The rule of this device is that there are 2 circles, which I will call gears, which rotate when the
center circle rotates. One of these gears is fixed always, since there are 2 gears and one can
say that the other is always relative to the first one. And there is a place on the rim of the
center circle, called angle gearR, at which it is placed. The other gearL has a starting point for
any particular design, and this is called angle gearL. The shift lever, which is connected
underneath to gearL, which is calibrated in degrees and labeled from 10 to 70, gives the
starting point of any design.

http://akatz712.freehostia.com/Physical_parameters.htm (3 of 6)7/3/2009 7:39:06 PM


Physical Parameters of the Magic Designer

Angle gearR is 315. The shift lever of 10 is at 135 degrees. The shift lever at 70 is at 75
degrees. It just so happens that a shift lever of 10 is directly opposite to the angle gearR. The
angle of gearL is 150 degrees more than angle of the shift lever, due to that underneath thing.

On both gears is a peg. The distance of the peg from the center of the gear determines the
amount of movement in the design.

Since gearR is fixed, and the gear rotates, one can decide to stop it when the peg on gearR,
which we will call pegR, is at an angle of 0. On the mechanical device, the gears cannot be
physically in the same place. However, on the computer they can be. As we will see, this
makes for some interesting ideas. The point of this, is to determine a starting angle for pegL.

This is a hard way to do it. So, from observation, I have found that when the shift lever is at 57,
angles of pegL and pegR match. The interesting thing about gears, is that it takes around 52
degrees for the pegs angles to go back in alignment. One can see that by looking at the pegs
at shift lever 70. Angle of pegL is 270 when the angle of pegR is 0. This seems correct, since
the designers of this toy seemed to have done things with sensible numbers. In 2009, this was
changed so that Angle of pegL is 45 when angle of PegR is 135. This change has the effect of
simply holding and rotating the circular paper. So physically it does not matter, but on a
computer screen it does matter.

To summarize, we have these values for the precise measurement of the hardware:
Radius of center = 3
Radius of gearR = 0.5
Radius of gearL = 0.5
Angle of gearR = 315
Distance of pegR from center of gearR = 0.375
Distance of pegL from center of gearL = 0.375
Angle of gearL = 315 (gearR) - 180 (seen on other side of gearR) + 10 (an arbitrary number
they use) + 150 = 295 - shift lever value.
Angle of pegR is assigned 0. This indicates an arbitrary start of the drawing of the design with
the crank handle.
And finally, Angle of pegL = 270 (when shift lever is 70), or more accurately 270 more than the
angle of pegR.

As one turns the center circle with the turn crank handle, it rotates, so we need to decide
where in space we are located. The goal is to find the point where the arms intersect. We have
not yet discussed the arms.

There is a set of 2 arms with holes down the lengths which are placed over the pegs for each
design. This in effect allows one to make arms of any length (within reason). The length of the
arm when hole A is in a peg is measured as 5 3/4 inches, and for B it is 5 1/2 inches, and so
on. The last letter is R, which is 1 1/2 inches. When one gets to R, there is a mathematical
distortion because these arms do not get thinner as they go from A to R. The formula to

http://akatz712.freehostia.com/Physical_parameters.htm (4 of 6)7/3/2009 7:39:06 PM


Physical Parameters of the Magic Designer

calculate this is from Larry:

True arm length = sqrt(5/16"^2 + (5 3/4" - (X - "A")*1/4")2)

A pen is placed in a holder at the intersection of the arms, and it writes on the paper. As the
crank is turned, this causes the entire coordinate system to rotate. The rotation direction is
very important. Basically, if the rotation angle is increasing, the angles of the pegs on the gears
are decreasing!

This discussion is continued with the math which can be found: Programming the Magic
Designer

The Magic Designer is one instance of a complex curved shape generator. A CCSG. There are
different classes of CCSGs. To define the class in which the Magic Designer belongs, look at
the parameters which were measured, and vary them. But an underlying structure remains,
called degrees of freedom. The following are degrees of freedom for this class of CCSG, with
comments for the actual physical device added:

● The ratio of Center to GearL. Fixed at 6x1.


● The ratio of Center to GearR. Fixed at 6x1.
● The relative angles between GearL and GearR. Some. Degree increments in a 60
degree window.
● The ratio of the size of GearL to the distance of the peg on GearL to its center. Fixed.
Note one can imagine a hardware where these pegs extend outwards on planks beyond
the size of the gears.
● Same for PegR and GearR.
● The relative angles (for arbitrary starting point) between the two pegs. Fixed.
● Length of left Arm. Some. Sub increments over a range.
● Length of right Arm. Some. " "
● Actual size of the Center. Fixed. This only is relevant when combining several designs
on the same visual space.
● Placement of the Center. Fixed. " "
● Thickness and Color of the Pen. User. There are other user parameters one can think of
as well such as background color.

http://akatz712.freehostia.com/Physical_parameters.htm (5 of 6)7/3/2009 7:39:06 PM


Physical Parameters of the Magic Designer

http://akatz712.freehostia.com/Physical_parameters.htm (6 of 6)7/3/2009 7:39:06 PM


Programming the Magic Designer application

History of the development of Magic Designer


programs.
I got the magic designer toy in 1966, when I was 10 years old. Here is a website which
discusses the Magic designer:

Physical Parameters of the metal designer

In 1981, I got my first computer, an Atari 400. It had great graphics for the computer of that
era, and a Basic language. Here is a website which discusses the Atari computers: Wiki on
Atari

I developed the code to draw a design. However, this was before graphical user interfaces,
and before hard disks, and even 180K floppy disk drives were several hundred dollars. So I
did not have a useful way to interact with the program. Basically one did that with the joy
stick. Looking back, I could have used that to select one number and two letters. That was
all that was needed. I think it took a considerable amount of time to draw a design on a high
resolution screen, which was 320 x 192. That was one color and I plotted a point for 360
degrees of angle. (The current program can draw a design in a 575 x 575 window in any
color with 7200 calculated points, in a fraction of a second.) I knew that the floating point
emulation in Atari Basic was very slow, so I wanted to do it in assembly language, but the
6502 8 bit CPU does not support floating point operations in hardware. Realizing this, I
stopped working on speeding this up.

In 1994, I bought my first PC. It was made by CyberMax and it was a 486DX50 running
Windows 3.11. That was a 16 bit version of Windows. Actually things were more
complicated. I learned the Windows API, which was 16 bit at that time. I used Turbo C++ (in
C rather than C++) to rewrite the magic designer math algorithm from Atari Basic. When I
upgraded to Windows 95, my program broke and I lost interest in it for many years. What
was important, was that it was my first experience with Windows style programming with
what is called and IDE. When programming in Windows, it is a matter of placing controls,
which the user uses to set up parameters and to run parts of the application, and writing
code to respond to events that the Windows operating system captures and gives to these
controls. Typical events would be the mouse moving or the user pressing a button on the
screen.

Early in 2007 I was having fun looking for free software. Free software is not timed trial
versions, or versions with limited capabilities, or versions where there are annoying things
like a company logo. Nor is free software, shareware, which means the person who wrote

http://akatz712.freehostia.com/Programming.htm (1 of 6)7/3/2009 7:39:06 PM


Programming the Magic Designer application

the software is begging for a fee based upon your conscience to pay it. Free software is
software you can download and use as is. It often comes with a support community of more
experienced users, as well as source code in some cases. Examples of freeware are
Audacity, the digital audio editor, Thunderbird, the email client program, and VLC Media
player. Then I happened to see the Watcom C compiler. Watcom was the best names from
the old days for language compilers. And now it is free software. In 2009, I switched to
Bloodshed Dev-C++ Here is a site which lists the well known C compilers: Free C/C++
Compilers

Basically, the redoing of the magic designer software divided into two parts. The first was to
get the software working in C language again by using the Watcom compiler, debugger (it is
the most stable low level debugger I have seen), and numerous manuals. I also downloaded
the Microsoft Windows 2004 SDK, which is a place to look up how to call any Windows
function in C language. I picked 2004, since I bought my computer in 2004. It is a Dell
Dimension 3000 with a 2.4 GHz Celeron processor. Then I realized that I wanted a
development tool, which is called an IDE, which can be used to visually place controls, and
it generates source code for you. You still have to write the inside of event handlers.
Basically, you visually place the controls, set properties of these controls, and there is a
matrix of code control x event. I found this free language called Euphoria. It is interpreted
like Basic, but has a syntax like a higher level C language. So, it is very easy for me to learn.
They also claim it is very high performance. However, that was not my worry, since I already
structured the actually drawing function in C language which was compiled by the Watcom
compiler. I made it into a DLL to be called from the Euphoria program. Euphoria has a
Windows library, with key developer Derek Parnell, and the IDE, with key developer Judith
Evans. Here is the website: The Euphoria Programming Language . The people there have
been very helpful.

My user interface design is based on the idea of saving screen space for a maximum sized
square drawing window. So, I decided to use buttons rather than a standard menu. And I
decided to stick with my original idea of having side by side parameters and draw area. My
technical issues with Euphoria were tool tips which I use for help, and colored buttons.
There was a colored button module, but I wanted something which I could simply change
the color of the button in the program. So, I used a child window for the colored button. For
the tool tips, I needed some help to make subfields in the status line. The status line is the
major feedback to the user, so I had to make a sacrifice and give up drawing area for it.
Derek provided me with the code to do the status line. But I am waiting on him for some
improvements.

The next part of this page will discuss the way that the drawing of a design is implemented.
It is best to read the page on the Magic designer mentioned first.

http://akatz712.freehostia.com/Programming.htm (2 of 6)7/3/2009 7:39:06 PM


Programming the Magic Designer application

To solve this problem mathematically involves the following steps:

Determine the fixed points of the center of gears, relative to center of the center gear (where
the paper is located). Using polar coordinates, this is r = radius of center + radius of gear,
and theta is the angle of the gear. Polar coordinates start theta=0 as due East, and rotate
counter clockwise, while radius is from the center of the center.

To convert this to x , y , see: Wiki on Polar coordinates


x = r * cos (theta), y = r * sin (theta)
Later calculations of radius and angle converted to x and y will be added to this. That is
called vector arithmetic.

Determine the starting angles of the pegs. This is similar to a spirograph problem. The
question is, how many times does a quarter rotate, when it is rotated around another
quarter? It is twice, as described in this website: http://
forum.physorg.com/index.php?act=Print&client=printer&f=20&t=9512

"A wheel rotates three times in rolling once around a fixed wheel with twice the diameter of
the rolling wheel. Since the circumference of the rolling wheel is half that of the larger one,
this produces two rotations with respect to the fixed wheel, and the revolution adds a third
rotation with respect to an observer from above. The general formula, where 'a' is the
diameter of the fixed wheel and 'b' is the diameter of the rolling wheel, is (a/b)+1. This gives
the number of rotations for one revolution. Thus if the rolling wheel has a diameter twice that
of the fixed wheel, it rotates 1.5 times. The rolling wheel, as it gets larger, approaches a limit
of one rotation per revolution-a limit that is achieved only when it rolls around a degenerate
'circle' of zero diameter, namely a point."

So, since the ratio of gear to the center circle is 1:6, it rotates 7 times around. This means
that it only takes 51.5 (360/7) degrees of rotation for the peg to return to its original angle.

So, to calculate the starting angle of peg for the design, ((center/gear)+1) * (70-shift lever) +
starting value (270).

In a loop:

Imagine that the crank is being turned a tiny bit for each calculation. And then these points
will be plotted. To make it a curve, one hopes that each point is continuous to the point
before. Of course this is a pixel screen, but the points are maintained as floating point
numbers, and then rounded to the nearest integer The concept of segments is used now,
because this was how I needed to make DIVs to make the Web Browser version of the
program. A segment is a rectangle of either 1xn or nx1 consecutive pixels. More on this later
on. 2009 update is that I use Canvas and Cairo. Canvas is an HTML feature which supports
2-D vector drawing inside of rectangle. Firefox implemented Canvas using Cairo, which is a

http://akatz712.freehostia.com/Programming.htm (3 of 6)7/3/2009 7:39:06 PM


Programming the Magic Designer application

low level 2-D drawing library. And this is what I am now using in both the download and the
browser versions. Floating point numbers are maintained and the curves are bezier curves
with antialiasing, like in a PDF.

Determine the fixed points of the pegs, relative to the center of the gears. Using polar
coordinates, this is r = distance from peg to center of gear and theta = starting value -
(center/gear)*(how far in the turn). Note that the spirograph adjustment is not used, since
the gears are fixed once the design begins. Also note, that how far into the turn is
subtracted, since the gears are turning clockwise! Convert these to x , y and add (vectors) to
the earlier calculation of center of gears to center of center.

Calculating the intersection of the two arms is the most complex problem. It is essentially the
intersection of two circles drawn around the pegs. We know the arms lengths (from the letter
the peg is in), and the positions of the pegs. I found the following site which not only
explains it all, but provided a C program which is used here: Intersection of two circles It
detects if there is an intersection, and where it is (there are 2). If there is no intersection, it
would be as if the gears tore the arms apart! The problem is, that there are 2 intersections of
2 circles. These are called prime and not prime. It turns out that prime is almost always
correct, but in the Advanced tab there is an option to choose not prime.

Next, convert these x , y back to polar coordinates, so I can move the point according to the
rotation of the center. From the same wiki page is how this is done:
r = square root ( x^2 + y^2 )

The r value may be compared to the radius of the center, so that it will not go outside the
lines. When this happens on the real device, there are gaps in the design. There are several
ways this can be handled on the computer from leaving it alone to connecting the dots once
it returns to the center circle. The program provides a clipping option, as well as not
connecting the dots, since that is not real.

To obtain theta in the interval [0, 2pi], the following may be used (arctan denotes the inverse
of the tangent function):

\theta = \begin{cases} \arctan(\frac{y}{x}) & \mbox{if } x > 0 \mbox{ and } y \ge 0\\ \arctan(\frac
{y}{x}) + 2\pi & \mbox{if } x > 0 \mbox{ and } y < 0\\ \arctan(\frac{y}{x}) + \pi & \mbox{if } x < 0\
\ \frac{\pi}{2} & \mbox{if } x = 0 \mbox{ and } y > 0\\ \frac{3\pi}{2} & \mbox{if } x = 0 \mbox
{ and } y < 0 \end{cases}

It is important to know that the center circle is rotating in the opposite direction as the gears
are. Because of this, the amount the center has rotated is subtracted from the polar angle.

Then convert back to x , y.

http://akatz712.freehostia.com/Programming.htm (4 of 6)7/3/2009 7:39:06 PM


Programming the Magic Designer application

Finally, adjust the final coordinates to pixels, as was discussed.

When I went out to look for likely users of my Magic Designer program, I found a substantial
portion of the community who thinks of designs and also uses computers, loves the Mac
computer. A program written for the Windows operating system will not work on a Mac
computer. And since I do not own a Mac, I could not develop software for one. So, I came
up with another approach to allow anyone to make these designs. It is called Browser
Version of Magic Designer. A web browser is an application which is made to work the same
way on any computer. To make the web browser do things, a combination of technologies is
used. I decided that javascript would be the best choice. I had considered java, but that
requires either a java program to get loaded onto the users computer, or for a server hosting
my site to run a java program (or any program) and sending the results back to the users
computer's open browser. Since I do not want to rely on a hosting site, and I do not want the
user to support any dynamically loaded plug ins, I decided to use javascript. All browsers
support it, and it is very powerful. It is blocked by some browsers by default. But so many
existing sites use javascript, that this blocking is not a worry. My main concern would be
feasibility and speed of execution. Unlike a program running on a user computer, javascript
is a high overhead interpreted language. Some of that is what makes it so very flexible. In
addition to knowing javascript, I also need to understand HTML, which is the markup
language which was first created to make the World wide web, and DOM, which is the way
that HTML is converted internally inside of a browser and manipulated by javascript
programs, much like Windows programs manipulate controls. And there is also CSS, which
is defining styles. Finally, different browsers do work differently, even though there is only
one javascript language. So, much of javascript programming involves supporting multiple
browsers. I already have Internet Explorer and Firefox. So, I downloaded Opera, and
decided I would make my program work in all 3 of these. In 2009, I support these 3, as well
as Google Chrome and Safari.

I did alot of research, and my first thought was to learn to use some javascript library.
However, I decided against it. It was hard to locate javascript which drew anything. Web
pages were designed to handle text and image files, and not draw. But I found Walter Zorn.
This is a key website: DHTML : Drawing shapes with javascript. His library handles lines,
polygons, and ellipses. What I did was to extend his library, but not change his source code.
I see my magic designer shapes as a complicated ellipse. It all comes down to making these
little DIVs. Inside of the DOM are built hundreds of tiny rectangles of color. I call these
segments. And I modified my standard windows program to make them, and it speeded that
program up. I had been calling Window's LineTo function to make every plot point. I
changed my program to make only tiny rectangular boxes either 1xn or nx1. I also
implemented thick lines by taking these segments and surrounding them. And then, since
javascript and C are so similar, I was able to go through my C program and quickly rewrite it
for javascript. In 2009, I replaced my technique based on Walter Zorn, and use Canvas and

http://akatz712.freehostia.com/Programming.htm (5 of 6)7/3/2009 7:39:06 PM


Programming the Magic Designer application

Cairo in my C program. It is VERY important to give credit to some one I only know of as
Larry. He developed an algorithm to connect small bezier curves.

What editors did I use? And, what other things did I use? Rather than look for a library of
controls, I found just the ones I needed. I make heavy use of a slider control found at : Tigra
Slider Control And, for picking color, I found this: Javascript Color Picker Input Controls T In
2009, I replaced both the sliders and color picker. See this link which lists all of the tools
used. Third Party Links related to Magic Designer There are so many development editors
which help with HTML and javascript. I started with Microsoft FrontPage, since I can visually
layout a page. However, I now think that DIVs are better than tables for laying things out.
But I still think that FrontPage is a good starting point, and for pages which have a simple
layout, like this one, one can stay in FrontPage. So, what editor am I using? I am using
several, but I like Notepad++ now. Here is where one can find that: Notepad++

http://akatz712.freehostia.com/Programming.htm (6 of 6)7/3/2009 7:39:06 PM


Browser Version of Magic Designer (AJAX)

Left Arm Right Arm Shift Line


A A Lever Thickness
B B 1 2
C C 3 4
D D Line
E E Color
F F
G G
H H
I I Background
J J Color
K K
L L
M M
N N
O O
P P
Q Q
R R

DRAW UNDO START


Hide Advanced
Save
List Load

http://akatz712.freehostia.com/Browser_Version_AJAX.htm7/3/2009 7:39:10 PM
Third Party Links related to Magic Designer

Third Party Links related to Magic Designer


The following is a list of links used by the Windows download and Browser versions of the Magic
Designer Emulator:

Euphoria development tools and Language used in Download version.


Compiler used for C program development for Download version.
Graphics Library which supports drawing operations in Download version.
Where I got the compiled library for Cairo.
Code to solve the Intersection of two circles.
Site where I host my Magic Designer website and Browser version.
Color picker used in the Browser version.
HTML sliders used in the browser version.
Server side PDF file generator library used by Browser version.
ExCanvas library needed to use Canvas tag on Internet Explorer

And finally, none of this would be possible if it was not for an anonymous person named Larry, who
developed the method to join bezier curves smoothly together. Unfortunately, there is not a website for
this.

A. Katz June 2009

http://akatz712.freehostia.com/ThirdPartyLinks.html7/3/2009 7:39:11 PM
My Other Links

Andrew Katz's other stuff on the Web

Here is a collection of links I found on the Web which are about me:

In the early 1980's, I wrote 3 computer programs which were published in 2 magazines for the
Atari computer.

Atari Artist in July 1984 COMPUTE! magazine

GTIA chip expansion demo in issue #12 of ANALOG Computing magazine

My attempt at writing Interactive Fiction (like Zork or Colossal Cave games):

Coming Home

Here is a personal type site where I can be found:

My Livejournal

Here is a very old picture I found of myself on the web:

Albany New York 1978

I will be adding more as I find them.

http://akatz712.freehostia.com/Other_links.htm7/3/2009 7:39:11 PM
My Favorite Sites

Andy's favorite sites


Internet Browser
Email provider Gmail

Email client
Chat client

Music player

Video player
Anti virus
Office suite

Text editor

Screen capture

Image viewer

Audio capture

File sharing

Misc Utility

Folder explorer

File search

File compare

File compress
DVD Burner
Painting drawing

http://akatz712.freehostia.com/MyFavoriteSites.html7/3/2009 7:39:14 PM
Andrew S Katz Resume

ANDREW S. KATZ

38 Park St. #24B


Florham Park, NJ 07932

home: (973)301-0448
e-mail: AKatz712 @ gmail.com

SOFTWARE DEVELOPMENT

● High and low level software design (functionality, UI, internal structure).
● Learning and programming with various tools, languages, and OSes.
● Software maintenance (improving performance, standardizing interfaces, reliability).
● Debugging (problem investigation and resolution).
● Writing specifications and doing peer critiques.

Technical Skills:

C; Windows NT; UNIX; SQL; VB Script; HTML; ORACLE; Sybase; PROGRESS


4GL; Informix 4GL; Forth; FORTRAN; BASIC; HP/RTE OS; Assembler
[various].

PROFESSIONAL EXPERIENCE

Energy For America, Springfield NJ 11/2000 – 2/2001


A professional engineering firm doing facilities management for NJ school districts.

● Learned: Access, Windows 2000, SQL Server, Embarcadero, Visual Interdev, ASP,
Proxy Server

A L Systems, Rockaway NJ 3/1999 – 7/1999


DynaShip Product used in distribution warehouses to manifest packages.

● Upgraded and maintained a program that prints shipping labels.

* C, SQL, Sybase, QNX

Software Associates International, Mount Arlington NJ 10/1998 – 2/1999


NUCLEUS Product combined many sales and marketing data sources into one schema.

http://akatz712.freehostia.com/Resume14b.html (1 of 4)7/3/2009 7:39:14 PM


Andrew S Katz Resume

● Took part in customization and testing of NUCLEUS product for GlaxoWellcome.

* SQL, ORACLE, C, NT, UNIX

Concurrent Technologies, Liberty Corner NJ 1/1998 – 9/1998


Implement production WEB based Sales order systems for AT&T data systems.

● Used metrics data on sales productivity to develop drill down HTML reports.

* ASP(VB script), SQL, SQL Server, HTML, NT

Pipeline Associates, Inc., Parsippany NJ (now part of EFI) 8/1997 – 10/1997


Develops PCL and Postscript language interpreters and drivers.

● Integrated cartridge fonts into the PCL interpreter.

* C / UNIX

Apprise Software, Inc., Florham Park, NJ (R&D location) 3/1996 – 8/1997


Develops Business Accounting and Distribution software for midsize companies.

● Developed the order entry front end user interface introducing the use of V8 smart
objects to improve ease of user navigation and adding distribution functionality to the
software package.
● Restructured the financial report writer to improve execution by introducing the
persistent procedures capability.

* Progress / Windows 95

US Servis, West Orange NJ (formerly Micro Healthsystems) 1988 - 1996


Provides billing management services to physician groups and hospitals.
Developed and deployed a custom system automating hospital nursing productivity.

● Designed a solution to give Infinity-X users access to managed care functionality by


using Intranet tools, MS Access, and UNIX shell scripts to link to a 3rd party DOS based
software package.

* Informix / C / UNIX ( 9 months )

● Ported and transferred ownership of the medical protocol engine to hospital client. This
included strategic changes to a C language program to link with a custom object

http://akatz712.freehostia.com/Resume14b.html (2 of 4)7/3/2009 7:39:14 PM


Andrew S Katz Resume

oriented database library.

* C / GUI / QNX ( 1 year )

● Designed and developed graphical capabilities for the Medtake product. Adapted a
flexible coding scheme to firmware limitations and explained it to client services.
● Designed and supported an enhanced tool for client screen customization. Made the
screen editor navigation keyboard arrow based to improve the productivity of the in
house screens department.
● Designed and developed the Nursing care plan module in Medtake. This included
design and coding of runtime UI, record management, network protocol, screen design
tool, compiler, and reports.
● Designed and developed an expansion of charting to allow up to 4 windows per record,
increasing the maximum number of phrases the user could choose from in writing
sentences about patient care.
● Extended the menu structure to implement a capability for screen sequences. This
facilitated the design of forms or protocol based data entry.
● Designed and developed software to allow charting as acceptance of previously charted
readings.
● Modified the software to ensure data integrity when charting is done after discharge by
ADT system.

* Forth / PC level

IITRI, Dover NJ 1987 - 1988


Diversified research organization with emphasis on government contract work.

● Designed a forms based routing system for the US Army, using JAM forms and Sybase
database procedures linked together with C language hooks.

* C / Sybase / UNIX

Telesciences, Inc., Fairfield, NJ 1981 - 1987


Built and deployed computer systems which captured and managed Telco information.

● Developed and implemented a highly efficient data re-expansion algorithm. Made use of
Host based assembly language to increase data flow.
● Designed and developed internal data set, check pointing and recovery for reliability and
reconstruction.
● Adapted software for a variety of output devices, formats, and sources. This included
buffering data output to make efficient use of the streaming magnetic tape drive.
● Played key role in software lifecycle: specification writing, component authorship,

http://akatz712.freehostia.com/Resume14b.html (3 of 4)7/3/2009 7:39:14 PM


Andrew S Katz Resume

system testing, problem resolution, version control, working with other departments,
guiding junior staff.

* Fortran / C / Assember / HP1000 mini - RTE

Singer Kearfott, Wayne, NJ 1978 - 1981


Developed internal navigation for military aircraft.

● Enhanced, tested, and patched assembly language embedded real time software.
● Maintained a variety of software tools and testing suites used by other engineering
groups.

* Fortran / Assembler / IBM JCL

EDUCATION : B.S. Computer Science, Rensselaer Polytechnic Institute, Troy, NY 1978

Visual Basic 6 at County College of Morris Grade: A Completed: 2000


2 Courses in C++ at County College of Morris Grade: A Completed: 2002

http://akatz712.freehostia.com/Resume14b.html (4 of 4)7/3/2009 7:39:14 PM


Ken's Book - Windows Live

Sign in
Windows Live™ HomeProfilePeopleMailPhotosMore ▼SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

● MSN ▼

● Autos

● Games

● Money

● Movies

● Music

● News

● Sports

● Weather

Search the web

Ken's Book
Andrew•SkyDrive•Ken's Book
Slide showView: Thumbnails ▼Sort by: Custom ▼EmbedOrder printsMore ▼ Options ▼ Help
Ken's Book - Windows Live
Ken's Book - Windows Live
Ken's Book - Windows Live
Ken's Book - Windows Live
Ken's Book - Windows Live
Ken's Book - Windows Live
Ken's Book - Windows Live
Ken's Book - Windows Live
Ken's Book - Windows Live
Ken's Book - Windows Live
Ken's Book - Windows Live

● © 2009 Microsoft ● Report Abuse


Shared with: Everyone (public)
● Privacy ● Code of Conduct

● Terms of use ● Account

● Feedback
Peabody Penguin's - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirograph©. With the onset of the computer age I
looked for a program that would mimic this marvellous toy. First for my System 80 then an
Amiga 500. My parents purchased AMOSPro and I was able to write a program I called Curve-A-
Graph. I transferred it over to an Amiga 1200 then I finally bought an IBM clone and rewrote
Curve-A-Graph to work on it.
I am continually refining it but the current incarnation can be downloaded via the below
download buttons. I hope you have as much fun with it as I did programming it.

Please click button below to download Curve-A-Graph


(requires Visual Basic Runtime files)

http://users.chariot.net.au/%7Epbb/cag/curve_a_graph.html7/3/2009 7:39:44 PM

You might also like