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

Magic Designer

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Magic Designer

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

httpakatz712freehostiacommainhtml (1 of 3)732009 73830 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

--gt NEW 2009 Browser Version of Magic Designer lt--

Tested with latest Firefox 3 Internet Explorer 876 Opera 9 Google Chrome 2 Safari 4

HELP PAGES Download Version OTHER PAGES

httpakatz712freehostiacommainhtml (2 of 3)732009 73830 PM

MagicDesigner - Overview

Basic

Advanced

Common

Ellipse Controls

Button Operations

Status Line and Keyboard

Notes

Users are invited to email to me their saved designs (as MGS files) I will add them to this site Thanks

Physical Parameters of the metal designer

Programming Details including Math

I would like to know who my user community is

Andrew Katzs Email

Browser Version (2007) of Magic Designer

Third Party Links related to Magic Designer

My other stuff on the Web

My Favorite useful sites

My Employment Resume

Ken Katzs book on Science and God

Jewish Sites

Peabody The Penguins Curve A Graph

httpakatz712freehostiacommainhtml (3 of 3)732009 73830 PM

httpwww1stingamescomgamesdatamagicdesignerindexpdf

Embedded Secure Document

The file httpwww1stingamescomgamesdatamagicdesignerindexpdf is a secure document that has been embedded in this document Double click the pushpin to view

httpwww1stingamescomgamesdatamagicdesignerindexpdf732009 73832 PM

(Formerly called Hoot Nanny)

INSTRUCTIONS FOR USING The Magic Designer is a mechanical drawing instrument It is strongly and accurately made and if used with reasonable care it will last for years It is an instructive toy and will be helpful in the development of talent in youngsters Even though the Magic Designer must be classified as a toy it has captured the interest of many grownups and has provided pleasant hours not to mention novel results Millions of different diagrams can be drawn with the Magic Designer Beautiful effects can be had by shading and blending harmonious colors in these diagrams The results will many times surprise you and be most pleasing In a childs hands the Magic Designer assists in teaching coordination and is of value in helping the child learn something about colors -especially their compatible relationship to each other in a figured pattern Practical uses for colored designs will suggest themselves Patterns for fancywork lamp shades coasters hot pads tablecloths napkins aprons dresses doilies guest towels place mats and many others Uses for diagrams made with the Magic Designer are limited only by ones own imagination The Magic Designer should be placed on a steady table The table should not be covered with cloth In order to add the desired weight to the pencil arm place two fingers lightly in the depressions of the metal arms when diagrams are being made (See outline drawing of the Magic Designer on a rear page) Insert a paper disc carefully under the clips provided on the rotating table This paper must be smooth and tightly held in place or it will slip during the drawing operation It is well to remember that paper expands and shrinks depending upon the weather In moist weather the paper may be too large for the table - in extremely dry weather the

paper may fit loosely In the beginning it is best to refer to a figure suggested in the instruction sheet These suggested figures are given to help you get started As soon as you are familiar with the mysteries of the Magic Designer you will enjoy making your own designs - and you can make an almost endless number of them If the handle interferes with the pencil arms rotate the handle backward one or two notches Under no circumstances should the handle be forced If the handle of the Magic Designer is forced it will no longer engage properly so that it will turn the gears To draw a circle place pencil arms on circle studs CONTENTS OF PACKAGE 1 Magic Designer 1 Pair of Pencil Arms 1 Set Paper Discs 1 Pencil (A good ball-point pen should be used for professional work-all of the figures in these pages were-drawn in this manner Suitable pens (they must fit the pencil holder) are usually available at drug stores) The following items may be purchased from your dealer or you may send check or currency with your order to us We cannot be responsible for the loss of money in mailing No COD order will be accepted The Magic Designer and paper refills are available from the factory if your dealer does not have them Pencil Arms - $ 100 Postpaid Envelope of Approximately 130 paper discs $100 postpaid

1 2 3

65MM 25KM 25MK 70CK 70KC 50CC 50FF

4 5 6

25CC 25KK 28FF 70LL 70DD 70DD 35HH

7 8 9

13BB 13FF 40EJ 40JE 68LL 45EE

10 11 12

25KI 26IK 50EE 60EE 24OP 24PO 55HH 70EE

13 14 15

55MM 55DD 55DE 55ED 55II 62EL 62LE

16 17 18

45FF 31JK 31KJ 60DD 66DD 60CC 34MK 34KM 30OK 30KO 65JJ

19 20

55HF 55FH 70CL 70LC 35MK 35KM 40GC 40CG

21 22 23

Set shift lever at 10 Place one pencil arm at H on upper circle stud Place other pencil arm at L on upper crank pin and draw design When each design is finished advance shift lever five divisions at a time until 70 is reached This completes the design

Set shift lever at 10 Place one pencil arm at K on upper circle stud Place other pencil arm at H on upper crank pin and draw design When each design is finished advance shift lever three divisions at a time until 46 is reached This completes the inner design Set shift lever at 16 Place one pencil arm at G on upper circle stud Place other pencil arm at L on upper crank pin and draw design When each design is finished advance shift lever three divisions at a time until 61 is reached This completes the outer design

Set shift lever at 10 Place one pencil arm at I on upper crank pin Place other pencil arm at L on lower circle stud and draw design When each design is finished advance shift lever three divisions until 46 is reached This will complete the inner design For the other design set shift lever at 10 Place one pencil arm at E on upper crank pin Place other pencil arm at L on lower circle stud and draw design When each design is finished advance shift lever two divisions at a time until 60 is reached This completes the outer design

KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS

Use a good ball-point pen for professional work - All figures on these pages were drawn with a ball-point pen

This setting would be written in Code as follows

(shift lever) (upper arm) (lower arm) 55_____________ ________________D D

NORTHERN SIGNAL COMPANY DIVISION OF FLO-TRONICS INC

SAUKVILLE WISCONSIN Part No HN-107

To Our Customers Hoot-Nanny - the MAGIC DESIGNER - was invented in 1929 and has been in constant production excepting for the war years since that time We think it is one of the most wonderful toys anyone could have-even adults write us enthusiastic letters Not all dealers carry the MAGIC DESIGNER all year round - many dealers feel that toys are just for Christmas If your dealer does not have the MAGIC DESIGNER - or paper refills - when you want them please write the factory - they are always in stock and well be happy to serve you promptly PRICES Magic Designer - $495 prepaid Paper Refills - Envelope of approximately 130 sheets (assorted colors) $100 prepaid

  • KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS
    • indexpdf

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

      Find Software

      Develop

      Community

      Site Support

      About

      Search

      SourceForgenet gt Find Software gt Complex Curved Shapes Generator Programs

      Complex Curved Shapes Generator Programs by akatz712

      Summary

      Files

      Support

      Develop

      Complex Curved Shapes Generator Programs Screenshot

      View more screenshots

      This computer program is an exact emulation of a toy which was sold years ago called Magic 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

      httpcomplexshapessourceforgenet

      GamesEntertainment Graphics Mathematics

      Show Subscribe

      Project Feed

      Screenshot Added

      akatz712 added a screenshot of Magic Paper

      1258AM on Jul 02 2009 by akatz712

      Screenshot Added

      akatz712 added a screenshot of Magic Parameters

      1257AM on Jul 02 2009 by akatz712

      Magic Designer Magic Designer v1_2 file released MagicDesignersetup_v1_2exe

      Here is a list of enhancements since May 23 2007

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

      0846PM on Jul 01 2009

      Magic Designer V0950 file released MagicDesigner_v0950zip

      -- 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

      1141PM on May 23 2007

      Magic Designer V0910 file released MagicDesigner_v0910zip

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

      1117PM on May 15 2007

      Magic Designer V0900 file released MagicDesigner_v0900zip

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

      0718PM on May 03 2007

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      httpsourceforgenetprojectscomplexshapes (1 of 2)732009 73842 PM

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      Magic Designer V0800 file released MagicDesignerzip

      This is the first release here

      1038PM on Apr 29 2007

      Sponsor Link Play the best Trading Card Game in the World

      Related Projects

      Hide In Picture matheval Object Oriented Euphoria Euphoria Programming Language wxEuphoria

      Complex Curved Shapes Generator Programs Actions

      Report inappropriate content

      About SourceForge About

      SourceForge Contact Us Jobs SF Advertising

      Find Software Search

      Software Browse by

      Category Most

      Popular Overall

      Most Active Overall

      Develop Software Start a

      Project Project

      Help Wanted

      New Projects

      Community SourceForge

      Forums The Blog sourceforge

      on Twitter Calendar

      Help Site

      Documentation Submit Support

      Requests Site Outages Feedback

      Copyright copy 2009 SourceForge Inc All rights reserved Terms of

      Use

      httpsourceforgenetprojectscomplexshapes (2 of 2)732009 73842 PM

      >

      WINDOWS CATEGORIES

      Antivirus

      Authoring tools

      CDDVD Tools

      Compression tools

      Desktop Enhancements

      File managers

      Internet

      IPOD TOOLS

      Mobile Phone Tools

      Multimedia

      Network Tools

      Office tools

      Others

      PORTABLE SOFTWARE

      Programming

      Science CAD

      Security

      System

      Tweak

      UNIX

      Windows Widgets

      Home Windows Others Miscellaneous Report spyware

      Magic Designer 12

      View more screenshots (2)

      Downloads 781 Add to download basket Tell us about an update

      User Rating Rated by

      Good (355) 18 user(s)

      Developer

      License Price

      Size OS

      Last Updated

      Category

      Andrew Katz | More programs

      Freeware FREE

      14 MB Windows All

      July 3rd 2009 1433 GMT [view history]

      C Others Miscellaneous

      Read user reviews (0) Add a review Refer to a friend

      Subscribe

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

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (1 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 gtgt SOFTPEDIA REVIEWS gtgt WEEKLY HIGHLIGHTS

      DVD ClonerSpyware Doctor1Click DVD CopyApollo DVD CopyABC Amber BlackBerProtected Music Co7-DAY TOP DOWNLOAD

      Program

      Avira AntiVir Personal - Free Antivirus 900403 116525Avira Antivir Virus Definition File Update July 2 2009 87963Windows Live Messenger 2009 14080640206 78828FreeZ Online TV 112 68081RemoveWGA 12 50610Y Multi Messenger 8x and 9x 48645Windows Live Messenger 8513021018 48622Nexus Radio 322 46964Microsoft Office 2007 38321

      Magic Designer description

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

      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 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 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 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

      Whats New in This Release [ read full changelog ] middot Added PDF printing using Larrys bezier smoothing middot Used Cairo for drawing middot Added multiple designs draw capability middot Fixed Help localization middot Changed defaults to solve mirror image bug and design orientation middot Added arm adjustment due to width of physical arms middot Saving advanced fields to MGS file middot Made shift lever edit box editable Banding ellipse improvements middot There is always an ellipse middot A radio is used to edit begin or end or center middot clicking left button continues with the same ellipse middot fine tune with arrow keys cross hairs middot Use pixmap to do immediate repaints for normal painting of drawing area middot Prev Curr Next use press and hold middot Remove Refresh and dirty since all designs are kept neat at all times middot Made two windows Esc to toggle maximize middot Changed the way BasicAdvancedcircle studs work middot Apply number to Undo Redo Prev Next as well as Draw middot Added buttons size (to show if designs are off page) slow (preview draw) ellipse middot (to hide ellipse) middot Grouped drawing ap

      Softpedia guarantees that Magic Designer 12 is 100 CLEAN which means it does not contain any form of malware including spyware viruses trojans and backdoors [read more gt]

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (2 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 32015 36195

      WEEKS BEST

      Messenger Plus Li Panda Antivirus Pr Microsoft Security AVG Free Edition 8 SUPER 2009 Build 36 Trillian Astra 40 Sun Java JRE 6 Upd Ad-Aware - Anniver Windows Vista Serv EVEREST Ultimate E IntelliJ IDEA 81 Microsoft NET Fra Nero BackItUp amp Bu BitDefender Total Windows 7 Manager SUMo 26176 SLOW-PCfighter 10 Virtual DJ 601 Avi2Dvd 05 Stable Windows 7 Release Windows 7 High Res Windows 7 Regional OpenOfficeorg 31 VistaCodecs x64Com Yahoo Zimbra Desk WinRAR 390 Beta 4 Seven Transformati Vista Rainbar 43 BitComet 113 Final Microsoft Office S

      TAGS magic designer | trigonometrical simulation | accurate drawing | magic designer | trigonometry | trigonometrical

      SHARE THIS

      HTML code for linking to this page

      Go to top

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

      copy 2001 - 2009 Softpedia All rights reserved Softpediatrade and the Softpediatrade logo are registered trademarks of SoftNews NET SRL

      Copyright Information | Privacy Policy | Terms of Use | Update your software | Archive

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (3 of 3)732009 73853 PM

      Line Thickness 1 2 3 4

      Select Color

      DRAWclip fine

      nice dots jagg

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line

      Back

      Browser Version of Magic Designer (Canvas and AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAX_canvashtm732009 73859 PM

      F1FFCC CancelSAVE

      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 button4 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 Bxy 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

      httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

      httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

      httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

      httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

      httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

      httpakatz712freehostiacomCommonhtml732009 73902 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

      httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

      httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

      httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

      httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

      httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

      httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

      2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

      sliders or F10F11 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

      httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

      httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

      httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

      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

      httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

      httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

      MagicDesigner - Notes

      There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

      httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

      httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

      httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

      httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

      MagicDesigner - Notes

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

      httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

      Physical Parameters of the Magic Designer

      Emulator for Magic DesignerMagic 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

      httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

      The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

      httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

      httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

      httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      calculate this is from Larry

      True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

      httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

      Programming the Magic Designer application

      History of the development of Magic Designer programsI 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 311 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

      httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

      httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

      So to calculate the starting angle of peg for the design ((centergear)+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

      httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

      httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

      httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

      httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line Thickness

      1 2

      3 4

      Line

      Background

      Browser Version of Magic Designer (AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

      httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

      My Other Links

      Andrew Katzs other stuff on the Web

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

      In the early 1980s 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

      httpakatz712freehostiacomOther_linkshtm732009 73911 PM

      My Favorite Sites

      Andys 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

      httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

      Andrew S Katz Resume

      ANDREW S KATZ

      38 Park St 24B Florham Park NJ 07932

      home (973)301-0448 e-mail AKatz712 gmailcom

      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 HPRTE OS Assembler [various]

      PROFESSIONAL EXPERIENCE

      Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

      httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

      Integrated cartridge fonts into the PCL interpreter

      C UNIX

      Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

      httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

      httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

      httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

      Kens Book - Windows Live

      Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

      Kens Book

      Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

      Family SafetyMobileDownloads

      Office Live

      All services

      MSN

      Autos

      Games

      Money

      Movies

      Music

      News

      Sports

      Weather

      AndrewbullSkyDrivebullKens Book

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

      Kens Book - Windows Live

      Shared with Everyone (public) copy 2009 Microsoft

      Privacy

      Terms of use

      Report Abuse

      Code of Conduct

      Account

      Feedback

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

      Peabody Penguins - Curve-A-Graph(c)

      Back when I was a kid I loved playing with Spirographcopy 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)

      httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

      • freehostiacom
        • MagicDesigner - Overview
        • Browser Version of Magic Designer (Canvas and AJAX)
        • MagicDesigner - Basic
        • MagicDesigner - Advanced
        • MagicDesigner - Common
        • MagicDesigner - Button Operations
        • MagicDesigner - Button Operations
        • MagicDesigner - Status Line
        • MagicDesigner - Notes
        • Physical Parameters of the Magic Designer
        • Programming the Magic Designer application
        • Browser Version of Magic Designer (AJAX)
        • Third Party Links related to Magic Designer
        • My Other Links
        • My Favorite Sites
        • Andrew S Katz Resume
          • 1stingamescom
            • httpwww1stingamescomgamesdatamagicdesignerindexpdf
              • sourceforgenet
                • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
                  • softpediacom
                    • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                      • livecom
                        • Kens Book - Windows Live
                          • userschariotnetau
                            • Peabody Penguins - Curve-A-Graph(c)
                                  1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                    1. form1
                                      1. x
                                        1. f1 soft
                                        2. f2 enter keyword
                                            1. form2
                                              1. x
                                                1. f1 [everything]
                                                  1. f2
                                                      1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                        1. form1
                                                          1. x
                                                            1. f1 Keywords
                                                              1. f2
                                                                1. form3
                                                                  1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                                  2. f2
                                                                    1. form2
                                                                      1. x
                                                                        1. f1 Search
                                                                          1. f2
                                                                              1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                                1. form8
                                                                                  1. f1
                                                                                  2. f2 Off
                                                                                  3. f3 Off
                                                                                  4. f4
                                                                                  5. x
                                                                                    1. f5 on
                                                                                      1. f6
                                                                                      2. f7
                                                                                      3. f8
                                                                                      4. f9
                                                                                      5. f10
                                                                                      6. f11
                                                                                      7. f12
                                                                                      8. f13
                                                                                      9. f14
                                                                                      10. f15
                                                                                      11. f16
                                                                                      12. f17
                                                                                      13. f18
                                                                                      14. f19
                                                                                      15. f20
                                                                                      16. f21
                                                                                      17. f22
                                                                                      18. f23
                                                                                      19. f24
                                                                                      20. f25
                                                                                        1. form4
                                                                                          1. x
                                                                                            1. f1 1
                                                                                                1. form2
                                                                                                  1. x
                                                                                                    1. f1 C
                                                                                                        1. form3
                                                                                                          1. x
                                                                                                            1. f1 C
                                                                                                              1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                                1. form7
                                                                                                                  1. x
                                                                                                                    1. f1 C
                                                                                                                        1. form8
                                                                                                                          1. x
                                                                                                                            1. f1 C
                                                                                                                                1. form9
                                                                                                                                  1. x
                                                                                                                                    1. f1
                                                                                                                                        1. form10
                                                                                                                                          1. x
                                                                                                                                            1. f1 1
                                                                                                                                                1. form11
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form12
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                        1. form13
                                                                                                                                                          1. f1
                                                                                                                                                          2. f2
                                                                                                                                                          3. f3
                                                                                                                                                          4. f4
                                                                                                                                                          5. f5
                                                                                                                                                          6. f6
                                                                                                                                                          7. f7
                                                                                                                                                          8. x
                                                                                                                                                            1. f8 []
                                                                                                                                                              1. f9
                                                                                                                                                                  1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                    1. form1
                                                                                                                                                                      1. x
                                                                                                                                                                        1. f1 Search the web
                                                                                                                                                                        2. f2 FOLDER
                                                                                                                                                                          1. f3
                                                                                                                                                                            1. form2
                                                                                                                                                                              1. x
                                                                                                                                                                                1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                                2. f2
                                                                                                                                                                                3. f3
Page 2: Magic Designer

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

--gt NEW 2009 Browser Version of Magic Designer lt--

Tested with latest Firefox 3 Internet Explorer 876 Opera 9 Google Chrome 2 Safari 4

HELP PAGES Download Version OTHER PAGES

httpakatz712freehostiacommainhtml (2 of 3)732009 73830 PM

MagicDesigner - Overview

Basic

Advanced

Common

Ellipse Controls

Button Operations

Status Line and Keyboard

Notes

Users are invited to email to me their saved designs (as MGS files) I will add them to this site Thanks

Physical Parameters of the metal designer

Programming Details including Math

I would like to know who my user community is

Andrew Katzs Email

Browser Version (2007) of Magic Designer

Third Party Links related to Magic Designer

My other stuff on the Web

My Favorite useful sites

My Employment Resume

Ken Katzs book on Science and God

Jewish Sites

Peabody The Penguins Curve A Graph

httpakatz712freehostiacommainhtml (3 of 3)732009 73830 PM

httpwww1stingamescomgamesdatamagicdesignerindexpdf

Embedded Secure Document

The file httpwww1stingamescomgamesdatamagicdesignerindexpdf is a secure document that has been embedded in this document Double click the pushpin to view

httpwww1stingamescomgamesdatamagicdesignerindexpdf732009 73832 PM

(Formerly called Hoot Nanny)

INSTRUCTIONS FOR USING The Magic Designer is a mechanical drawing instrument It is strongly and accurately made and if used with reasonable care it will last for years It is an instructive toy and will be helpful in the development of talent in youngsters Even though the Magic Designer must be classified as a toy it has captured the interest of many grownups and has provided pleasant hours not to mention novel results Millions of different diagrams can be drawn with the Magic Designer Beautiful effects can be had by shading and blending harmonious colors in these diagrams The results will many times surprise you and be most pleasing In a childs hands the Magic Designer assists in teaching coordination and is of value in helping the child learn something about colors -especially their compatible relationship to each other in a figured pattern Practical uses for colored designs will suggest themselves Patterns for fancywork lamp shades coasters hot pads tablecloths napkins aprons dresses doilies guest towels place mats and many others Uses for diagrams made with the Magic Designer are limited only by ones own imagination The Magic Designer should be placed on a steady table The table should not be covered with cloth In order to add the desired weight to the pencil arm place two fingers lightly in the depressions of the metal arms when diagrams are being made (See outline drawing of the Magic Designer on a rear page) Insert a paper disc carefully under the clips provided on the rotating table This paper must be smooth and tightly held in place or it will slip during the drawing operation It is well to remember that paper expands and shrinks depending upon the weather In moist weather the paper may be too large for the table - in extremely dry weather the

paper may fit loosely In the beginning it is best to refer to a figure suggested in the instruction sheet These suggested figures are given to help you get started As soon as you are familiar with the mysteries of the Magic Designer you will enjoy making your own designs - and you can make an almost endless number of them If the handle interferes with the pencil arms rotate the handle backward one or two notches Under no circumstances should the handle be forced If the handle of the Magic Designer is forced it will no longer engage properly so that it will turn the gears To draw a circle place pencil arms on circle studs CONTENTS OF PACKAGE 1 Magic Designer 1 Pair of Pencil Arms 1 Set Paper Discs 1 Pencil (A good ball-point pen should be used for professional work-all of the figures in these pages were-drawn in this manner Suitable pens (they must fit the pencil holder) are usually available at drug stores) The following items may be purchased from your dealer or you may send check or currency with your order to us We cannot be responsible for the loss of money in mailing No COD order will be accepted The Magic Designer and paper refills are available from the factory if your dealer does not have them Pencil Arms - $ 100 Postpaid Envelope of Approximately 130 paper discs $100 postpaid

1 2 3

65MM 25KM 25MK 70CK 70KC 50CC 50FF

4 5 6

25CC 25KK 28FF 70LL 70DD 70DD 35HH

7 8 9

13BB 13FF 40EJ 40JE 68LL 45EE

10 11 12

25KI 26IK 50EE 60EE 24OP 24PO 55HH 70EE

13 14 15

55MM 55DD 55DE 55ED 55II 62EL 62LE

16 17 18

45FF 31JK 31KJ 60DD 66DD 60CC 34MK 34KM 30OK 30KO 65JJ

19 20

55HF 55FH 70CL 70LC 35MK 35KM 40GC 40CG

21 22 23

Set shift lever at 10 Place one pencil arm at H on upper circle stud Place other pencil arm at L on upper crank pin and draw design When each design is finished advance shift lever five divisions at a time until 70 is reached This completes the design

Set shift lever at 10 Place one pencil arm at K on upper circle stud Place other pencil arm at H on upper crank pin and draw design When each design is finished advance shift lever three divisions at a time until 46 is reached This completes the inner design Set shift lever at 16 Place one pencil arm at G on upper circle stud Place other pencil arm at L on upper crank pin and draw design When each design is finished advance shift lever three divisions at a time until 61 is reached This completes the outer design

Set shift lever at 10 Place one pencil arm at I on upper crank pin Place other pencil arm at L on lower circle stud and draw design When each design is finished advance shift lever three divisions until 46 is reached This will complete the inner design For the other design set shift lever at 10 Place one pencil arm at E on upper crank pin Place other pencil arm at L on lower circle stud and draw design When each design is finished advance shift lever two divisions at a time until 60 is reached This completes the outer design

KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS

Use a good ball-point pen for professional work - All figures on these pages were drawn with a ball-point pen

This setting would be written in Code as follows

(shift lever) (upper arm) (lower arm) 55_____________ ________________D D

NORTHERN SIGNAL COMPANY DIVISION OF FLO-TRONICS INC

SAUKVILLE WISCONSIN Part No HN-107

To Our Customers Hoot-Nanny - the MAGIC DESIGNER - was invented in 1929 and has been in constant production excepting for the war years since that time We think it is one of the most wonderful toys anyone could have-even adults write us enthusiastic letters Not all dealers carry the MAGIC DESIGNER all year round - many dealers feel that toys are just for Christmas If your dealer does not have the MAGIC DESIGNER - or paper refills - when you want them please write the factory - they are always in stock and well be happy to serve you promptly PRICES Magic Designer - $495 prepaid Paper Refills - Envelope of approximately 130 sheets (assorted colors) $100 prepaid

  • KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS
    • indexpdf

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

      Find Software

      Develop

      Community

      Site Support

      About

      Search

      SourceForgenet gt Find Software gt Complex Curved Shapes Generator Programs

      Complex Curved Shapes Generator Programs by akatz712

      Summary

      Files

      Support

      Develop

      Complex Curved Shapes Generator Programs Screenshot

      View more screenshots

      This computer program is an exact emulation of a toy which was sold years ago called Magic 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

      httpcomplexshapessourceforgenet

      GamesEntertainment Graphics Mathematics

      Show Subscribe

      Project Feed

      Screenshot Added

      akatz712 added a screenshot of Magic Paper

      1258AM on Jul 02 2009 by akatz712

      Screenshot Added

      akatz712 added a screenshot of Magic Parameters

      1257AM on Jul 02 2009 by akatz712

      Magic Designer Magic Designer v1_2 file released MagicDesignersetup_v1_2exe

      Here is a list of enhancements since May 23 2007

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

      0846PM on Jul 01 2009

      Magic Designer V0950 file released MagicDesigner_v0950zip

      -- 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

      1141PM on May 23 2007

      Magic Designer V0910 file released MagicDesigner_v0910zip

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

      1117PM on May 15 2007

      Magic Designer V0900 file released MagicDesigner_v0900zip

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

      0718PM on May 03 2007

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      httpsourceforgenetprojectscomplexshapes (1 of 2)732009 73842 PM

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      Magic Designer V0800 file released MagicDesignerzip

      This is the first release here

      1038PM on Apr 29 2007

      Sponsor Link Play the best Trading Card Game in the World

      Related Projects

      Hide In Picture matheval Object Oriented Euphoria Euphoria Programming Language wxEuphoria

      Complex Curved Shapes Generator Programs Actions

      Report inappropriate content

      About SourceForge About

      SourceForge Contact Us Jobs SF Advertising

      Find Software Search

      Software Browse by

      Category Most

      Popular Overall

      Most Active Overall

      Develop Software Start a

      Project Project

      Help Wanted

      New Projects

      Community SourceForge

      Forums The Blog sourceforge

      on Twitter Calendar

      Help Site

      Documentation Submit Support

      Requests Site Outages Feedback

      Copyright copy 2009 SourceForge Inc All rights reserved Terms of

      Use

      httpsourceforgenetprojectscomplexshapes (2 of 2)732009 73842 PM

      >

      WINDOWS CATEGORIES

      Antivirus

      Authoring tools

      CDDVD Tools

      Compression tools

      Desktop Enhancements

      File managers

      Internet

      IPOD TOOLS

      Mobile Phone Tools

      Multimedia

      Network Tools

      Office tools

      Others

      PORTABLE SOFTWARE

      Programming

      Science CAD

      Security

      System

      Tweak

      UNIX

      Windows Widgets

      Home Windows Others Miscellaneous Report spyware

      Magic Designer 12

      View more screenshots (2)

      Downloads 781 Add to download basket Tell us about an update

      User Rating Rated by

      Good (355) 18 user(s)

      Developer

      License Price

      Size OS

      Last Updated

      Category

      Andrew Katz | More programs

      Freeware FREE

      14 MB Windows All

      July 3rd 2009 1433 GMT [view history]

      C Others Miscellaneous

      Read user reviews (0) Add a review Refer to a friend

      Subscribe

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

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (1 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 gtgt SOFTPEDIA REVIEWS gtgt WEEKLY HIGHLIGHTS

      DVD ClonerSpyware Doctor1Click DVD CopyApollo DVD CopyABC Amber BlackBerProtected Music Co7-DAY TOP DOWNLOAD

      Program

      Avira AntiVir Personal - Free Antivirus 900403 116525Avira Antivir Virus Definition File Update July 2 2009 87963Windows Live Messenger 2009 14080640206 78828FreeZ Online TV 112 68081RemoveWGA 12 50610Y Multi Messenger 8x and 9x 48645Windows Live Messenger 8513021018 48622Nexus Radio 322 46964Microsoft Office 2007 38321

      Magic Designer description

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

      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 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 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 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

      Whats New in This Release [ read full changelog ] middot Added PDF printing using Larrys bezier smoothing middot Used Cairo for drawing middot Added multiple designs draw capability middot Fixed Help localization middot Changed defaults to solve mirror image bug and design orientation middot Added arm adjustment due to width of physical arms middot Saving advanced fields to MGS file middot Made shift lever edit box editable Banding ellipse improvements middot There is always an ellipse middot A radio is used to edit begin or end or center middot clicking left button continues with the same ellipse middot fine tune with arrow keys cross hairs middot Use pixmap to do immediate repaints for normal painting of drawing area middot Prev Curr Next use press and hold middot Remove Refresh and dirty since all designs are kept neat at all times middot Made two windows Esc to toggle maximize middot Changed the way BasicAdvancedcircle studs work middot Apply number to Undo Redo Prev Next as well as Draw middot Added buttons size (to show if designs are off page) slow (preview draw) ellipse middot (to hide ellipse) middot Grouped drawing ap

      Softpedia guarantees that Magic Designer 12 is 100 CLEAN which means it does not contain any form of malware including spyware viruses trojans and backdoors [read more gt]

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (2 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 32015 36195

      WEEKS BEST

      Messenger Plus Li Panda Antivirus Pr Microsoft Security AVG Free Edition 8 SUPER 2009 Build 36 Trillian Astra 40 Sun Java JRE 6 Upd Ad-Aware - Anniver Windows Vista Serv EVEREST Ultimate E IntelliJ IDEA 81 Microsoft NET Fra Nero BackItUp amp Bu BitDefender Total Windows 7 Manager SUMo 26176 SLOW-PCfighter 10 Virtual DJ 601 Avi2Dvd 05 Stable Windows 7 Release Windows 7 High Res Windows 7 Regional OpenOfficeorg 31 VistaCodecs x64Com Yahoo Zimbra Desk WinRAR 390 Beta 4 Seven Transformati Vista Rainbar 43 BitComet 113 Final Microsoft Office S

      TAGS magic designer | trigonometrical simulation | accurate drawing | magic designer | trigonometry | trigonometrical

      SHARE THIS

      HTML code for linking to this page

      Go to top

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

      copy 2001 - 2009 Softpedia All rights reserved Softpediatrade and the Softpediatrade logo are registered trademarks of SoftNews NET SRL

      Copyright Information | Privacy Policy | Terms of Use | Update your software | Archive

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (3 of 3)732009 73853 PM

      Line Thickness 1 2 3 4

      Select Color

      DRAWclip fine

      nice dots jagg

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line

      Back

      Browser Version of Magic Designer (Canvas and AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAX_canvashtm732009 73859 PM

      F1FFCC CancelSAVE

      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 button4 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 Bxy 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

      httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

      httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

      httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

      httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

      httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

      httpakatz712freehostiacomCommonhtml732009 73902 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

      httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

      httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

      httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

      httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

      httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

      httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

      2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

      sliders or F10F11 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

      httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

      httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

      httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

      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

      httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

      httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

      MagicDesigner - Notes

      There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

      httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

      httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

      httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

      httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

      MagicDesigner - Notes

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

      httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

      Physical Parameters of the Magic Designer

      Emulator for Magic DesignerMagic 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

      httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

      The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

      httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

      httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

      httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      calculate this is from Larry

      True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

      httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

      Programming the Magic Designer application

      History of the development of Magic Designer programsI 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 311 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

      httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

      httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

      So to calculate the starting angle of peg for the design ((centergear)+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

      httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

      httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

      httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

      httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line Thickness

      1 2

      3 4

      Line

      Background

      Browser Version of Magic Designer (AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

      httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

      My Other Links

      Andrew Katzs other stuff on the Web

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

      In the early 1980s 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

      httpakatz712freehostiacomOther_linkshtm732009 73911 PM

      My Favorite Sites

      Andys 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

      httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

      Andrew S Katz Resume

      ANDREW S KATZ

      38 Park St 24B Florham Park NJ 07932

      home (973)301-0448 e-mail AKatz712 gmailcom

      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 HPRTE OS Assembler [various]

      PROFESSIONAL EXPERIENCE

      Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

      httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

      Integrated cartridge fonts into the PCL interpreter

      C UNIX

      Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

      httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

      httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

      httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

      Kens Book - Windows Live

      Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

      Kens Book

      Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

      Family SafetyMobileDownloads

      Office Live

      All services

      MSN

      Autos

      Games

      Money

      Movies

      Music

      News

      Sports

      Weather

      AndrewbullSkyDrivebullKens Book

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

      Kens Book - Windows Live

      Shared with Everyone (public) copy 2009 Microsoft

      Privacy

      Terms of use

      Report Abuse

      Code of Conduct

      Account

      Feedback

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

      Peabody Penguins - Curve-A-Graph(c)

      Back when I was a kid I loved playing with Spirographcopy 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)

      httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

      • freehostiacom
        • MagicDesigner - Overview
        • Browser Version of Magic Designer (Canvas and AJAX)
        • MagicDesigner - Basic
        • MagicDesigner - Advanced
        • MagicDesigner - Common
        • MagicDesigner - Button Operations
        • MagicDesigner - Button Operations
        • MagicDesigner - Status Line
        • MagicDesigner - Notes
        • Physical Parameters of the Magic Designer
        • Programming the Magic Designer application
        • Browser Version of Magic Designer (AJAX)
        • Third Party Links related to Magic Designer
        • My Other Links
        • My Favorite Sites
        • Andrew S Katz Resume
          • 1stingamescom
            • httpwww1stingamescomgamesdatamagicdesignerindexpdf
              • sourceforgenet
                • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
                  • softpediacom
                    • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                      • livecom
                        • Kens Book - Windows Live
                          • userschariotnetau
                            • Peabody Penguins - Curve-A-Graph(c)
                                  1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                    1. form1
                                      1. x
                                        1. f1 soft
                                        2. f2 enter keyword
                                            1. form2
                                              1. x
                                                1. f1 [everything]
                                                  1. f2
                                                      1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                        1. form1
                                                          1. x
                                                            1. f1 Keywords
                                                              1. f2
                                                                1. form3
                                                                  1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                                  2. f2
                                                                    1. form2
                                                                      1. x
                                                                        1. f1 Search
                                                                          1. f2
                                                                              1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                                1. form8
                                                                                  1. f1
                                                                                  2. f2 Off
                                                                                  3. f3 Off
                                                                                  4. f4
                                                                                  5. x
                                                                                    1. f5 on
                                                                                      1. f6
                                                                                      2. f7
                                                                                      3. f8
                                                                                      4. f9
                                                                                      5. f10
                                                                                      6. f11
                                                                                      7. f12
                                                                                      8. f13
                                                                                      9. f14
                                                                                      10. f15
                                                                                      11. f16
                                                                                      12. f17
                                                                                      13. f18
                                                                                      14. f19
                                                                                      15. f20
                                                                                      16. f21
                                                                                      17. f22
                                                                                      18. f23
                                                                                      19. f24
                                                                                      20. f25
                                                                                        1. form4
                                                                                          1. x
                                                                                            1. f1 1
                                                                                                1. form2
                                                                                                  1. x
                                                                                                    1. f1 C
                                                                                                        1. form3
                                                                                                          1. x
                                                                                                            1. f1 C
                                                                                                              1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                                1. form7
                                                                                                                  1. x
                                                                                                                    1. f1 C
                                                                                                                        1. form8
                                                                                                                          1. x
                                                                                                                            1. f1 C
                                                                                                                                1. form9
                                                                                                                                  1. x
                                                                                                                                    1. f1
                                                                                                                                        1. form10
                                                                                                                                          1. x
                                                                                                                                            1. f1 1
                                                                                                                                                1. form11
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form12
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                        1. form13
                                                                                                                                                          1. f1
                                                                                                                                                          2. f2
                                                                                                                                                          3. f3
                                                                                                                                                          4. f4
                                                                                                                                                          5. f5
                                                                                                                                                          6. f6
                                                                                                                                                          7. f7
                                                                                                                                                          8. x
                                                                                                                                                            1. f8 []
                                                                                                                                                              1. f9
                                                                                                                                                                  1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                    1. form1
                                                                                                                                                                      1. x
                                                                                                                                                                        1. f1 Search the web
                                                                                                                                                                        2. f2 FOLDER
                                                                                                                                                                          1. f3
                                                                                                                                                                            1. form2
                                                                                                                                                                              1. x
                                                                                                                                                                                1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                                2. f2
                                                                                                                                                                                3. f3
Page 3: Magic Designer

MagicDesigner - Overview

Basic

Advanced

Common

Ellipse Controls

Button Operations

Status Line and Keyboard

Notes

Users are invited to email to me their saved designs (as MGS files) I will add them to this site Thanks

Physical Parameters of the metal designer

Programming Details including Math

I would like to know who my user community is

Andrew Katzs Email

Browser Version (2007) of Magic Designer

Third Party Links related to Magic Designer

My other stuff on the Web

My Favorite useful sites

My Employment Resume

Ken Katzs book on Science and God

Jewish Sites

Peabody The Penguins Curve A Graph

httpakatz712freehostiacommainhtml (3 of 3)732009 73830 PM

httpwww1stingamescomgamesdatamagicdesignerindexpdf

Embedded Secure Document

The file httpwww1stingamescomgamesdatamagicdesignerindexpdf is a secure document that has been embedded in this document Double click the pushpin to view

httpwww1stingamescomgamesdatamagicdesignerindexpdf732009 73832 PM

(Formerly called Hoot Nanny)

INSTRUCTIONS FOR USING The Magic Designer is a mechanical drawing instrument It is strongly and accurately made and if used with reasonable care it will last for years It is an instructive toy and will be helpful in the development of talent in youngsters Even though the Magic Designer must be classified as a toy it has captured the interest of many grownups and has provided pleasant hours not to mention novel results Millions of different diagrams can be drawn with the Magic Designer Beautiful effects can be had by shading and blending harmonious colors in these diagrams The results will many times surprise you and be most pleasing In a childs hands the Magic Designer assists in teaching coordination and is of value in helping the child learn something about colors -especially their compatible relationship to each other in a figured pattern Practical uses for colored designs will suggest themselves Patterns for fancywork lamp shades coasters hot pads tablecloths napkins aprons dresses doilies guest towels place mats and many others Uses for diagrams made with the Magic Designer are limited only by ones own imagination The Magic Designer should be placed on a steady table The table should not be covered with cloth In order to add the desired weight to the pencil arm place two fingers lightly in the depressions of the metal arms when diagrams are being made (See outline drawing of the Magic Designer on a rear page) Insert a paper disc carefully under the clips provided on the rotating table This paper must be smooth and tightly held in place or it will slip during the drawing operation It is well to remember that paper expands and shrinks depending upon the weather In moist weather the paper may be too large for the table - in extremely dry weather the

paper may fit loosely In the beginning it is best to refer to a figure suggested in the instruction sheet These suggested figures are given to help you get started As soon as you are familiar with the mysteries of the Magic Designer you will enjoy making your own designs - and you can make an almost endless number of them If the handle interferes with the pencil arms rotate the handle backward one or two notches Under no circumstances should the handle be forced If the handle of the Magic Designer is forced it will no longer engage properly so that it will turn the gears To draw a circle place pencil arms on circle studs CONTENTS OF PACKAGE 1 Magic Designer 1 Pair of Pencil Arms 1 Set Paper Discs 1 Pencil (A good ball-point pen should be used for professional work-all of the figures in these pages were-drawn in this manner Suitable pens (they must fit the pencil holder) are usually available at drug stores) The following items may be purchased from your dealer or you may send check or currency with your order to us We cannot be responsible for the loss of money in mailing No COD order will be accepted The Magic Designer and paper refills are available from the factory if your dealer does not have them Pencil Arms - $ 100 Postpaid Envelope of Approximately 130 paper discs $100 postpaid

1 2 3

65MM 25KM 25MK 70CK 70KC 50CC 50FF

4 5 6

25CC 25KK 28FF 70LL 70DD 70DD 35HH

7 8 9

13BB 13FF 40EJ 40JE 68LL 45EE

10 11 12

25KI 26IK 50EE 60EE 24OP 24PO 55HH 70EE

13 14 15

55MM 55DD 55DE 55ED 55II 62EL 62LE

16 17 18

45FF 31JK 31KJ 60DD 66DD 60CC 34MK 34KM 30OK 30KO 65JJ

19 20

55HF 55FH 70CL 70LC 35MK 35KM 40GC 40CG

21 22 23

Set shift lever at 10 Place one pencil arm at H on upper circle stud Place other pencil arm at L on upper crank pin and draw design When each design is finished advance shift lever five divisions at a time until 70 is reached This completes the design

Set shift lever at 10 Place one pencil arm at K on upper circle stud Place other pencil arm at H on upper crank pin and draw design When each design is finished advance shift lever three divisions at a time until 46 is reached This completes the inner design Set shift lever at 16 Place one pencil arm at G on upper circle stud Place other pencil arm at L on upper crank pin and draw design When each design is finished advance shift lever three divisions at a time until 61 is reached This completes the outer design

Set shift lever at 10 Place one pencil arm at I on upper crank pin Place other pencil arm at L on lower circle stud and draw design When each design is finished advance shift lever three divisions until 46 is reached This will complete the inner design For the other design set shift lever at 10 Place one pencil arm at E on upper crank pin Place other pencil arm at L on lower circle stud and draw design When each design is finished advance shift lever two divisions at a time until 60 is reached This completes the outer design

KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS

Use a good ball-point pen for professional work - All figures on these pages were drawn with a ball-point pen

This setting would be written in Code as follows

(shift lever) (upper arm) (lower arm) 55_____________ ________________D D

NORTHERN SIGNAL COMPANY DIVISION OF FLO-TRONICS INC

SAUKVILLE WISCONSIN Part No HN-107

To Our Customers Hoot-Nanny - the MAGIC DESIGNER - was invented in 1929 and has been in constant production excepting for the war years since that time We think it is one of the most wonderful toys anyone could have-even adults write us enthusiastic letters Not all dealers carry the MAGIC DESIGNER all year round - many dealers feel that toys are just for Christmas If your dealer does not have the MAGIC DESIGNER - or paper refills - when you want them please write the factory - they are always in stock and well be happy to serve you promptly PRICES Magic Designer - $495 prepaid Paper Refills - Envelope of approximately 130 sheets (assorted colors) $100 prepaid

  • KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS
    • indexpdf

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

      Find Software

      Develop

      Community

      Site Support

      About

      Search

      SourceForgenet gt Find Software gt Complex Curved Shapes Generator Programs

      Complex Curved Shapes Generator Programs by akatz712

      Summary

      Files

      Support

      Develop

      Complex Curved Shapes Generator Programs Screenshot

      View more screenshots

      This computer program is an exact emulation of a toy which was sold years ago called Magic 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

      httpcomplexshapessourceforgenet

      GamesEntertainment Graphics Mathematics

      Show Subscribe

      Project Feed

      Screenshot Added

      akatz712 added a screenshot of Magic Paper

      1258AM on Jul 02 2009 by akatz712

      Screenshot Added

      akatz712 added a screenshot of Magic Parameters

      1257AM on Jul 02 2009 by akatz712

      Magic Designer Magic Designer v1_2 file released MagicDesignersetup_v1_2exe

      Here is a list of enhancements since May 23 2007

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

      0846PM on Jul 01 2009

      Magic Designer V0950 file released MagicDesigner_v0950zip

      -- 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

      1141PM on May 23 2007

      Magic Designer V0910 file released MagicDesigner_v0910zip

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

      1117PM on May 15 2007

      Magic Designer V0900 file released MagicDesigner_v0900zip

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

      0718PM on May 03 2007

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      httpsourceforgenetprojectscomplexshapes (1 of 2)732009 73842 PM

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      Magic Designer V0800 file released MagicDesignerzip

      This is the first release here

      1038PM on Apr 29 2007

      Sponsor Link Play the best Trading Card Game in the World

      Related Projects

      Hide In Picture matheval Object Oriented Euphoria Euphoria Programming Language wxEuphoria

      Complex Curved Shapes Generator Programs Actions

      Report inappropriate content

      About SourceForge About

      SourceForge Contact Us Jobs SF Advertising

      Find Software Search

      Software Browse by

      Category Most

      Popular Overall

      Most Active Overall

      Develop Software Start a

      Project Project

      Help Wanted

      New Projects

      Community SourceForge

      Forums The Blog sourceforge

      on Twitter Calendar

      Help Site

      Documentation Submit Support

      Requests Site Outages Feedback

      Copyright copy 2009 SourceForge Inc All rights reserved Terms of

      Use

      httpsourceforgenetprojectscomplexshapes (2 of 2)732009 73842 PM

      >

      WINDOWS CATEGORIES

      Antivirus

      Authoring tools

      CDDVD Tools

      Compression tools

      Desktop Enhancements

      File managers

      Internet

      IPOD TOOLS

      Mobile Phone Tools

      Multimedia

      Network Tools

      Office tools

      Others

      PORTABLE SOFTWARE

      Programming

      Science CAD

      Security

      System

      Tweak

      UNIX

      Windows Widgets

      Home Windows Others Miscellaneous Report spyware

      Magic Designer 12

      View more screenshots (2)

      Downloads 781 Add to download basket Tell us about an update

      User Rating Rated by

      Good (355) 18 user(s)

      Developer

      License Price

      Size OS

      Last Updated

      Category

      Andrew Katz | More programs

      Freeware FREE

      14 MB Windows All

      July 3rd 2009 1433 GMT [view history]

      C Others Miscellaneous

      Read user reviews (0) Add a review Refer to a friend

      Subscribe

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

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (1 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 gtgt SOFTPEDIA REVIEWS gtgt WEEKLY HIGHLIGHTS

      DVD ClonerSpyware Doctor1Click DVD CopyApollo DVD CopyABC Amber BlackBerProtected Music Co7-DAY TOP DOWNLOAD

      Program

      Avira AntiVir Personal - Free Antivirus 900403 116525Avira Antivir Virus Definition File Update July 2 2009 87963Windows Live Messenger 2009 14080640206 78828FreeZ Online TV 112 68081RemoveWGA 12 50610Y Multi Messenger 8x and 9x 48645Windows Live Messenger 8513021018 48622Nexus Radio 322 46964Microsoft Office 2007 38321

      Magic Designer description

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

      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 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 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 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

      Whats New in This Release [ read full changelog ] middot Added PDF printing using Larrys bezier smoothing middot Used Cairo for drawing middot Added multiple designs draw capability middot Fixed Help localization middot Changed defaults to solve mirror image bug and design orientation middot Added arm adjustment due to width of physical arms middot Saving advanced fields to MGS file middot Made shift lever edit box editable Banding ellipse improvements middot There is always an ellipse middot A radio is used to edit begin or end or center middot clicking left button continues with the same ellipse middot fine tune with arrow keys cross hairs middot Use pixmap to do immediate repaints for normal painting of drawing area middot Prev Curr Next use press and hold middot Remove Refresh and dirty since all designs are kept neat at all times middot Made two windows Esc to toggle maximize middot Changed the way BasicAdvancedcircle studs work middot Apply number to Undo Redo Prev Next as well as Draw middot Added buttons size (to show if designs are off page) slow (preview draw) ellipse middot (to hide ellipse) middot Grouped drawing ap

      Softpedia guarantees that Magic Designer 12 is 100 CLEAN which means it does not contain any form of malware including spyware viruses trojans and backdoors [read more gt]

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (2 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 32015 36195

      WEEKS BEST

      Messenger Plus Li Panda Antivirus Pr Microsoft Security AVG Free Edition 8 SUPER 2009 Build 36 Trillian Astra 40 Sun Java JRE 6 Upd Ad-Aware - Anniver Windows Vista Serv EVEREST Ultimate E IntelliJ IDEA 81 Microsoft NET Fra Nero BackItUp amp Bu BitDefender Total Windows 7 Manager SUMo 26176 SLOW-PCfighter 10 Virtual DJ 601 Avi2Dvd 05 Stable Windows 7 Release Windows 7 High Res Windows 7 Regional OpenOfficeorg 31 VistaCodecs x64Com Yahoo Zimbra Desk WinRAR 390 Beta 4 Seven Transformati Vista Rainbar 43 BitComet 113 Final Microsoft Office S

      TAGS magic designer | trigonometrical simulation | accurate drawing | magic designer | trigonometry | trigonometrical

      SHARE THIS

      HTML code for linking to this page

      Go to top

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

      copy 2001 - 2009 Softpedia All rights reserved Softpediatrade and the Softpediatrade logo are registered trademarks of SoftNews NET SRL

      Copyright Information | Privacy Policy | Terms of Use | Update your software | Archive

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (3 of 3)732009 73853 PM

      Line Thickness 1 2 3 4

      Select Color

      DRAWclip fine

      nice dots jagg

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line

      Back

      Browser Version of Magic Designer (Canvas and AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAX_canvashtm732009 73859 PM

      F1FFCC CancelSAVE

      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 button4 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 Bxy 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

      httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

      httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

      httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

      httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

      httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

      httpakatz712freehostiacomCommonhtml732009 73902 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

      httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

      httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

      httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

      httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

      httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

      httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

      2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

      sliders or F10F11 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

      httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

      httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

      httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

      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

      httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

      httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

      MagicDesigner - Notes

      There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

      httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

      httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

      httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

      httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

      MagicDesigner - Notes

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

      httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

      Physical Parameters of the Magic Designer

      Emulator for Magic DesignerMagic 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

      httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

      The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

      httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

      httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

      httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      calculate this is from Larry

      True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

      httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

      Programming the Magic Designer application

      History of the development of Magic Designer programsI 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 311 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

      httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

      httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

      So to calculate the starting angle of peg for the design ((centergear)+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

      httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

      httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

      httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

      httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line Thickness

      1 2

      3 4

      Line

      Background

      Browser Version of Magic Designer (AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

      httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

      My Other Links

      Andrew Katzs other stuff on the Web

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

      In the early 1980s 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

      httpakatz712freehostiacomOther_linkshtm732009 73911 PM

      My Favorite Sites

      Andys 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

      httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

      Andrew S Katz Resume

      ANDREW S KATZ

      38 Park St 24B Florham Park NJ 07932

      home (973)301-0448 e-mail AKatz712 gmailcom

      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 HPRTE OS Assembler [various]

      PROFESSIONAL EXPERIENCE

      Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

      httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

      Integrated cartridge fonts into the PCL interpreter

      C UNIX

      Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

      httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

      httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

      httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

      Kens Book - Windows Live

      Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

      Kens Book

      Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

      Family SafetyMobileDownloads

      Office Live

      All services

      MSN

      Autos

      Games

      Money

      Movies

      Music

      News

      Sports

      Weather

      AndrewbullSkyDrivebullKens Book

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

      Kens Book - Windows Live

      Shared with Everyone (public) copy 2009 Microsoft

      Privacy

      Terms of use

      Report Abuse

      Code of Conduct

      Account

      Feedback

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

      Peabody Penguins - Curve-A-Graph(c)

      Back when I was a kid I loved playing with Spirographcopy 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)

      httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

      • freehostiacom
        • MagicDesigner - Overview
        • Browser Version of Magic Designer (Canvas and AJAX)
        • MagicDesigner - Basic
        • MagicDesigner - Advanced
        • MagicDesigner - Common
        • MagicDesigner - Button Operations
        • MagicDesigner - Button Operations
        • MagicDesigner - Status Line
        • MagicDesigner - Notes
        • Physical Parameters of the Magic Designer
        • Programming the Magic Designer application
        • Browser Version of Magic Designer (AJAX)
        • Third Party Links related to Magic Designer
        • My Other Links
        • My Favorite Sites
        • Andrew S Katz Resume
          • 1stingamescom
            • httpwww1stingamescomgamesdatamagicdesignerindexpdf
              • sourceforgenet
                • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
                  • softpediacom
                    • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                      • livecom
                        • Kens Book - Windows Live
                          • userschariotnetau
                            • Peabody Penguins - Curve-A-Graph(c)
                                  1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                    1. form1
                                      1. x
                                        1. f1 soft
                                        2. f2 enter keyword
                                            1. form2
                                              1. x
                                                1. f1 [everything]
                                                  1. f2
                                                      1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                        1. form1
                                                          1. x
                                                            1. f1 Keywords
                                                              1. f2
                                                                1. form3
                                                                  1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                                  2. f2
                                                                    1. form2
                                                                      1. x
                                                                        1. f1 Search
                                                                          1. f2
                                                                              1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                                1. form8
                                                                                  1. f1
                                                                                  2. f2 Off
                                                                                  3. f3 Off
                                                                                  4. f4
                                                                                  5. x
                                                                                    1. f5 on
                                                                                      1. f6
                                                                                      2. f7
                                                                                      3. f8
                                                                                      4. f9
                                                                                      5. f10
                                                                                      6. f11
                                                                                      7. f12
                                                                                      8. f13
                                                                                      9. f14
                                                                                      10. f15
                                                                                      11. f16
                                                                                      12. f17
                                                                                      13. f18
                                                                                      14. f19
                                                                                      15. f20
                                                                                      16. f21
                                                                                      17. f22
                                                                                      18. f23
                                                                                      19. f24
                                                                                      20. f25
                                                                                        1. form4
                                                                                          1. x
                                                                                            1. f1 1
                                                                                                1. form2
                                                                                                  1. x
                                                                                                    1. f1 C
                                                                                                        1. form3
                                                                                                          1. x
                                                                                                            1. f1 C
                                                                                                              1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                                1. form7
                                                                                                                  1. x
                                                                                                                    1. f1 C
                                                                                                                        1. form8
                                                                                                                          1. x
                                                                                                                            1. f1 C
                                                                                                                                1. form9
                                                                                                                                  1. x
                                                                                                                                    1. f1
                                                                                                                                        1. form10
                                                                                                                                          1. x
                                                                                                                                            1. f1 1
                                                                                                                                                1. form11
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form12
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                        1. form13
                                                                                                                                                          1. f1
                                                                                                                                                          2. f2
                                                                                                                                                          3. f3
                                                                                                                                                          4. f4
                                                                                                                                                          5. f5
                                                                                                                                                          6. f6
                                                                                                                                                          7. f7
                                                                                                                                                          8. x
                                                                                                                                                            1. f8 []
                                                                                                                                                              1. f9
                                                                                                                                                                  1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                    1. form1
                                                                                                                                                                      1. x
                                                                                                                                                                        1. f1 Search the web
                                                                                                                                                                        2. f2 FOLDER
                                                                                                                                                                          1. f3
                                                                                                                                                                            1. form2
                                                                                                                                                                              1. x
                                                                                                                                                                                1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                                2. f2
                                                                                                                                                                                3. f3
Page 4: Magic Designer

httpwww1stingamescomgamesdatamagicdesignerindexpdf

Embedded Secure Document

The file httpwww1stingamescomgamesdatamagicdesignerindexpdf is a secure document that has been embedded in this document Double click the pushpin to view

httpwww1stingamescomgamesdatamagicdesignerindexpdf732009 73832 PM

(Formerly called Hoot Nanny)

INSTRUCTIONS FOR USING The Magic Designer is a mechanical drawing instrument It is strongly and accurately made and if used with reasonable care it will last for years It is an instructive toy and will be helpful in the development of talent in youngsters Even though the Magic Designer must be classified as a toy it has captured the interest of many grownups and has provided pleasant hours not to mention novel results Millions of different diagrams can be drawn with the Magic Designer Beautiful effects can be had by shading and blending harmonious colors in these diagrams The results will many times surprise you and be most pleasing In a childs hands the Magic Designer assists in teaching coordination and is of value in helping the child learn something about colors -especially their compatible relationship to each other in a figured pattern Practical uses for colored designs will suggest themselves Patterns for fancywork lamp shades coasters hot pads tablecloths napkins aprons dresses doilies guest towels place mats and many others Uses for diagrams made with the Magic Designer are limited only by ones own imagination The Magic Designer should be placed on a steady table The table should not be covered with cloth In order to add the desired weight to the pencil arm place two fingers lightly in the depressions of the metal arms when diagrams are being made (See outline drawing of the Magic Designer on a rear page) Insert a paper disc carefully under the clips provided on the rotating table This paper must be smooth and tightly held in place or it will slip during the drawing operation It is well to remember that paper expands and shrinks depending upon the weather In moist weather the paper may be too large for the table - in extremely dry weather the

paper may fit loosely In the beginning it is best to refer to a figure suggested in the instruction sheet These suggested figures are given to help you get started As soon as you are familiar with the mysteries of the Magic Designer you will enjoy making your own designs - and you can make an almost endless number of them If the handle interferes with the pencil arms rotate the handle backward one or two notches Under no circumstances should the handle be forced If the handle of the Magic Designer is forced it will no longer engage properly so that it will turn the gears To draw a circle place pencil arms on circle studs CONTENTS OF PACKAGE 1 Magic Designer 1 Pair of Pencil Arms 1 Set Paper Discs 1 Pencil (A good ball-point pen should be used for professional work-all of the figures in these pages were-drawn in this manner Suitable pens (they must fit the pencil holder) are usually available at drug stores) The following items may be purchased from your dealer or you may send check or currency with your order to us We cannot be responsible for the loss of money in mailing No COD order will be accepted The Magic Designer and paper refills are available from the factory if your dealer does not have them Pencil Arms - $ 100 Postpaid Envelope of Approximately 130 paper discs $100 postpaid

1 2 3

65MM 25KM 25MK 70CK 70KC 50CC 50FF

4 5 6

25CC 25KK 28FF 70LL 70DD 70DD 35HH

7 8 9

13BB 13FF 40EJ 40JE 68LL 45EE

10 11 12

25KI 26IK 50EE 60EE 24OP 24PO 55HH 70EE

13 14 15

55MM 55DD 55DE 55ED 55II 62EL 62LE

16 17 18

45FF 31JK 31KJ 60DD 66DD 60CC 34MK 34KM 30OK 30KO 65JJ

19 20

55HF 55FH 70CL 70LC 35MK 35KM 40GC 40CG

21 22 23

Set shift lever at 10 Place one pencil arm at H on upper circle stud Place other pencil arm at L on upper crank pin and draw design When each design is finished advance shift lever five divisions at a time until 70 is reached This completes the design

Set shift lever at 10 Place one pencil arm at K on upper circle stud Place other pencil arm at H on upper crank pin and draw design When each design is finished advance shift lever three divisions at a time until 46 is reached This completes the inner design Set shift lever at 16 Place one pencil arm at G on upper circle stud Place other pencil arm at L on upper crank pin and draw design When each design is finished advance shift lever three divisions at a time until 61 is reached This completes the outer design

Set shift lever at 10 Place one pencil arm at I on upper crank pin Place other pencil arm at L on lower circle stud and draw design When each design is finished advance shift lever three divisions until 46 is reached This will complete the inner design For the other design set shift lever at 10 Place one pencil arm at E on upper crank pin Place other pencil arm at L on lower circle stud and draw design When each design is finished advance shift lever two divisions at a time until 60 is reached This completes the outer design

KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS

Use a good ball-point pen for professional work - All figures on these pages were drawn with a ball-point pen

This setting would be written in Code as follows

(shift lever) (upper arm) (lower arm) 55_____________ ________________D D

NORTHERN SIGNAL COMPANY DIVISION OF FLO-TRONICS INC

SAUKVILLE WISCONSIN Part No HN-107

To Our Customers Hoot-Nanny - the MAGIC DESIGNER - was invented in 1929 and has been in constant production excepting for the war years since that time We think it is one of the most wonderful toys anyone could have-even adults write us enthusiastic letters Not all dealers carry the MAGIC DESIGNER all year round - many dealers feel that toys are just for Christmas If your dealer does not have the MAGIC DESIGNER - or paper refills - when you want them please write the factory - they are always in stock and well be happy to serve you promptly PRICES Magic Designer - $495 prepaid Paper Refills - Envelope of approximately 130 sheets (assorted colors) $100 prepaid

  • KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS
    • indexpdf

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

      Find Software

      Develop

      Community

      Site Support

      About

      Search

      SourceForgenet gt Find Software gt Complex Curved Shapes Generator Programs

      Complex Curved Shapes Generator Programs by akatz712

      Summary

      Files

      Support

      Develop

      Complex Curved Shapes Generator Programs Screenshot

      View more screenshots

      This computer program is an exact emulation of a toy which was sold years ago called Magic 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

      httpcomplexshapessourceforgenet

      GamesEntertainment Graphics Mathematics

      Show Subscribe

      Project Feed

      Screenshot Added

      akatz712 added a screenshot of Magic Paper

      1258AM on Jul 02 2009 by akatz712

      Screenshot Added

      akatz712 added a screenshot of Magic Parameters

      1257AM on Jul 02 2009 by akatz712

      Magic Designer Magic Designer v1_2 file released MagicDesignersetup_v1_2exe

      Here is a list of enhancements since May 23 2007

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

      0846PM on Jul 01 2009

      Magic Designer V0950 file released MagicDesigner_v0950zip

      -- 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

      1141PM on May 23 2007

      Magic Designer V0910 file released MagicDesigner_v0910zip

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

      1117PM on May 15 2007

      Magic Designer V0900 file released MagicDesigner_v0900zip

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

      0718PM on May 03 2007

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      httpsourceforgenetprojectscomplexshapes (1 of 2)732009 73842 PM

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      Magic Designer V0800 file released MagicDesignerzip

      This is the first release here

      1038PM on Apr 29 2007

      Sponsor Link Play the best Trading Card Game in the World

      Related Projects

      Hide In Picture matheval Object Oriented Euphoria Euphoria Programming Language wxEuphoria

      Complex Curved Shapes Generator Programs Actions

      Report inappropriate content

      About SourceForge About

      SourceForge Contact Us Jobs SF Advertising

      Find Software Search

      Software Browse by

      Category Most

      Popular Overall

      Most Active Overall

      Develop Software Start a

      Project Project

      Help Wanted

      New Projects

      Community SourceForge

      Forums The Blog sourceforge

      on Twitter Calendar

      Help Site

      Documentation Submit Support

      Requests Site Outages Feedback

      Copyright copy 2009 SourceForge Inc All rights reserved Terms of

      Use

      httpsourceforgenetprojectscomplexshapes (2 of 2)732009 73842 PM

      >

      WINDOWS CATEGORIES

      Antivirus

      Authoring tools

      CDDVD Tools

      Compression tools

      Desktop Enhancements

      File managers

      Internet

      IPOD TOOLS

      Mobile Phone Tools

      Multimedia

      Network Tools

      Office tools

      Others

      PORTABLE SOFTWARE

      Programming

      Science CAD

      Security

      System

      Tweak

      UNIX

      Windows Widgets

      Home Windows Others Miscellaneous Report spyware

      Magic Designer 12

      View more screenshots (2)

      Downloads 781 Add to download basket Tell us about an update

      User Rating Rated by

      Good (355) 18 user(s)

      Developer

      License Price

      Size OS

      Last Updated

      Category

      Andrew Katz | More programs

      Freeware FREE

      14 MB Windows All

      July 3rd 2009 1433 GMT [view history]

      C Others Miscellaneous

      Read user reviews (0) Add a review Refer to a friend

      Subscribe

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

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (1 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 gtgt SOFTPEDIA REVIEWS gtgt WEEKLY HIGHLIGHTS

      DVD ClonerSpyware Doctor1Click DVD CopyApollo DVD CopyABC Amber BlackBerProtected Music Co7-DAY TOP DOWNLOAD

      Program

      Avira AntiVir Personal - Free Antivirus 900403 116525Avira Antivir Virus Definition File Update July 2 2009 87963Windows Live Messenger 2009 14080640206 78828FreeZ Online TV 112 68081RemoveWGA 12 50610Y Multi Messenger 8x and 9x 48645Windows Live Messenger 8513021018 48622Nexus Radio 322 46964Microsoft Office 2007 38321

      Magic Designer description

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

      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 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 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 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

      Whats New in This Release [ read full changelog ] middot Added PDF printing using Larrys bezier smoothing middot Used Cairo for drawing middot Added multiple designs draw capability middot Fixed Help localization middot Changed defaults to solve mirror image bug and design orientation middot Added arm adjustment due to width of physical arms middot Saving advanced fields to MGS file middot Made shift lever edit box editable Banding ellipse improvements middot There is always an ellipse middot A radio is used to edit begin or end or center middot clicking left button continues with the same ellipse middot fine tune with arrow keys cross hairs middot Use pixmap to do immediate repaints for normal painting of drawing area middot Prev Curr Next use press and hold middot Remove Refresh and dirty since all designs are kept neat at all times middot Made two windows Esc to toggle maximize middot Changed the way BasicAdvancedcircle studs work middot Apply number to Undo Redo Prev Next as well as Draw middot Added buttons size (to show if designs are off page) slow (preview draw) ellipse middot (to hide ellipse) middot Grouped drawing ap

      Softpedia guarantees that Magic Designer 12 is 100 CLEAN which means it does not contain any form of malware including spyware viruses trojans and backdoors [read more gt]

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (2 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 32015 36195

      WEEKS BEST

      Messenger Plus Li Panda Antivirus Pr Microsoft Security AVG Free Edition 8 SUPER 2009 Build 36 Trillian Astra 40 Sun Java JRE 6 Upd Ad-Aware - Anniver Windows Vista Serv EVEREST Ultimate E IntelliJ IDEA 81 Microsoft NET Fra Nero BackItUp amp Bu BitDefender Total Windows 7 Manager SUMo 26176 SLOW-PCfighter 10 Virtual DJ 601 Avi2Dvd 05 Stable Windows 7 Release Windows 7 High Res Windows 7 Regional OpenOfficeorg 31 VistaCodecs x64Com Yahoo Zimbra Desk WinRAR 390 Beta 4 Seven Transformati Vista Rainbar 43 BitComet 113 Final Microsoft Office S

      TAGS magic designer | trigonometrical simulation | accurate drawing | magic designer | trigonometry | trigonometrical

      SHARE THIS

      HTML code for linking to this page

      Go to top

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

      copy 2001 - 2009 Softpedia All rights reserved Softpediatrade and the Softpediatrade logo are registered trademarks of SoftNews NET SRL

      Copyright Information | Privacy Policy | Terms of Use | Update your software | Archive

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (3 of 3)732009 73853 PM

      Line Thickness 1 2 3 4

      Select Color

      DRAWclip fine

      nice dots jagg

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line

      Back

      Browser Version of Magic Designer (Canvas and AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAX_canvashtm732009 73859 PM

      F1FFCC CancelSAVE

      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 button4 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 Bxy 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

      httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

      httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

      httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

      httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

      httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

      httpakatz712freehostiacomCommonhtml732009 73902 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

      httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

      httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

      httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

      httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

      httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

      httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

      2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

      sliders or F10F11 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

      httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

      httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

      httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

      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

      httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

      httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

      MagicDesigner - Notes

      There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

      httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

      httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

      httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

      httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

      MagicDesigner - Notes

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

      httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

      Physical Parameters of the Magic Designer

      Emulator for Magic DesignerMagic 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

      httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

      The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

      httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

      httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

      httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      calculate this is from Larry

      True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

      httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

      Programming the Magic Designer application

      History of the development of Magic Designer programsI 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 311 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

      httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

      httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

      So to calculate the starting angle of peg for the design ((centergear)+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

      httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

      httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

      httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

      httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line Thickness

      1 2

      3 4

      Line

      Background

      Browser Version of Magic Designer (AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

      httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

      My Other Links

      Andrew Katzs other stuff on the Web

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

      In the early 1980s 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

      httpakatz712freehostiacomOther_linkshtm732009 73911 PM

      My Favorite Sites

      Andys 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

      httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

      Andrew S Katz Resume

      ANDREW S KATZ

      38 Park St 24B Florham Park NJ 07932

      home (973)301-0448 e-mail AKatz712 gmailcom

      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 HPRTE OS Assembler [various]

      PROFESSIONAL EXPERIENCE

      Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

      httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

      Integrated cartridge fonts into the PCL interpreter

      C UNIX

      Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

      httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

      httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

      httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

      Kens Book - Windows Live

      Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

      Kens Book

      Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

      Family SafetyMobileDownloads

      Office Live

      All services

      MSN

      Autos

      Games

      Money

      Movies

      Music

      News

      Sports

      Weather

      AndrewbullSkyDrivebullKens Book

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

      Kens Book - Windows Live

      Shared with Everyone (public) copy 2009 Microsoft

      Privacy

      Terms of use

      Report Abuse

      Code of Conduct

      Account

      Feedback

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

      Peabody Penguins - Curve-A-Graph(c)

      Back when I was a kid I loved playing with Spirographcopy 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)

      httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

      • freehostiacom
        • MagicDesigner - Overview
        • Browser Version of Magic Designer (Canvas and AJAX)
        • MagicDesigner - Basic
        • MagicDesigner - Advanced
        • MagicDesigner - Common
        • MagicDesigner - Button Operations
        • MagicDesigner - Button Operations
        • MagicDesigner - Status Line
        • MagicDesigner - Notes
        • Physical Parameters of the Magic Designer
        • Programming the Magic Designer application
        • Browser Version of Magic Designer (AJAX)
        • Third Party Links related to Magic Designer
        • My Other Links
        • My Favorite Sites
        • Andrew S Katz Resume
          • 1stingamescom
            • httpwww1stingamescomgamesdatamagicdesignerindexpdf
              • sourceforgenet
                • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
                  • softpediacom
                    • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                      • livecom
                        • Kens Book - Windows Live
                          • userschariotnetau
                            • Peabody Penguins - Curve-A-Graph(c)
                                  1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                    1. form1
                                      1. x
                                        1. f1 soft
                                        2. f2 enter keyword
                                            1. form2
                                              1. x
                                                1. f1 [everything]
                                                  1. f2
                                                      1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                        1. form1
                                                          1. x
                                                            1. f1 Keywords
                                                              1. f2
                                                                1. form3
                                                                  1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                                  2. f2
                                                                    1. form2
                                                                      1. x
                                                                        1. f1 Search
                                                                          1. f2
                                                                              1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                                1. form8
                                                                                  1. f1
                                                                                  2. f2 Off
                                                                                  3. f3 Off
                                                                                  4. f4
                                                                                  5. x
                                                                                    1. f5 on
                                                                                      1. f6
                                                                                      2. f7
                                                                                      3. f8
                                                                                      4. f9
                                                                                      5. f10
                                                                                      6. f11
                                                                                      7. f12
                                                                                      8. f13
                                                                                      9. f14
                                                                                      10. f15
                                                                                      11. f16
                                                                                      12. f17
                                                                                      13. f18
                                                                                      14. f19
                                                                                      15. f20
                                                                                      16. f21
                                                                                      17. f22
                                                                                      18. f23
                                                                                      19. f24
                                                                                      20. f25
                                                                                        1. form4
                                                                                          1. x
                                                                                            1. f1 1
                                                                                                1. form2
                                                                                                  1. x
                                                                                                    1. f1 C
                                                                                                        1. form3
                                                                                                          1. x
                                                                                                            1. f1 C
                                                                                                              1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                                1. form7
                                                                                                                  1. x
                                                                                                                    1. f1 C
                                                                                                                        1. form8
                                                                                                                          1. x
                                                                                                                            1. f1 C
                                                                                                                                1. form9
                                                                                                                                  1. x
                                                                                                                                    1. f1
                                                                                                                                        1. form10
                                                                                                                                          1. x
                                                                                                                                            1. f1 1
                                                                                                                                                1. form11
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form12
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                        1. form13
                                                                                                                                                          1. f1
                                                                                                                                                          2. f2
                                                                                                                                                          3. f3
                                                                                                                                                          4. f4
                                                                                                                                                          5. f5
                                                                                                                                                          6. f6
                                                                                                                                                          7. f7
                                                                                                                                                          8. x
                                                                                                                                                            1. f8 []
                                                                                                                                                              1. f9
                                                                                                                                                                  1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                    1. form1
                                                                                                                                                                      1. x
                                                                                                                                                                        1. f1 Search the web
                                                                                                                                                                        2. f2 FOLDER
                                                                                                                                                                          1. f3
                                                                                                                                                                            1. form2
                                                                                                                                                                              1. x
                                                                                                                                                                                1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                                2. f2
                                                                                                                                                                                3. f3
Page 5: Magic Designer

(Formerly called Hoot Nanny)

INSTRUCTIONS FOR USING The Magic Designer is a mechanical drawing instrument It is strongly and accurately made and if used with reasonable care it will last for years It is an instructive toy and will be helpful in the development of talent in youngsters Even though the Magic Designer must be classified as a toy it has captured the interest of many grownups and has provided pleasant hours not to mention novel results Millions of different diagrams can be drawn with the Magic Designer Beautiful effects can be had by shading and blending harmonious colors in these diagrams The results will many times surprise you and be most pleasing In a childs hands the Magic Designer assists in teaching coordination and is of value in helping the child learn something about colors -especially their compatible relationship to each other in a figured pattern Practical uses for colored designs will suggest themselves Patterns for fancywork lamp shades coasters hot pads tablecloths napkins aprons dresses doilies guest towels place mats and many others Uses for diagrams made with the Magic Designer are limited only by ones own imagination The Magic Designer should be placed on a steady table The table should not be covered with cloth In order to add the desired weight to the pencil arm place two fingers lightly in the depressions of the metal arms when diagrams are being made (See outline drawing of the Magic Designer on a rear page) Insert a paper disc carefully under the clips provided on the rotating table This paper must be smooth and tightly held in place or it will slip during the drawing operation It is well to remember that paper expands and shrinks depending upon the weather In moist weather the paper may be too large for the table - in extremely dry weather the

paper may fit loosely In the beginning it is best to refer to a figure suggested in the instruction sheet These suggested figures are given to help you get started As soon as you are familiar with the mysteries of the Magic Designer you will enjoy making your own designs - and you can make an almost endless number of them If the handle interferes with the pencil arms rotate the handle backward one or two notches Under no circumstances should the handle be forced If the handle of the Magic Designer is forced it will no longer engage properly so that it will turn the gears To draw a circle place pencil arms on circle studs CONTENTS OF PACKAGE 1 Magic Designer 1 Pair of Pencil Arms 1 Set Paper Discs 1 Pencil (A good ball-point pen should be used for professional work-all of the figures in these pages were-drawn in this manner Suitable pens (they must fit the pencil holder) are usually available at drug stores) The following items may be purchased from your dealer or you may send check or currency with your order to us We cannot be responsible for the loss of money in mailing No COD order will be accepted The Magic Designer and paper refills are available from the factory if your dealer does not have them Pencil Arms - $ 100 Postpaid Envelope of Approximately 130 paper discs $100 postpaid

1 2 3

65MM 25KM 25MK 70CK 70KC 50CC 50FF

4 5 6

25CC 25KK 28FF 70LL 70DD 70DD 35HH

7 8 9

13BB 13FF 40EJ 40JE 68LL 45EE

10 11 12

25KI 26IK 50EE 60EE 24OP 24PO 55HH 70EE

13 14 15

55MM 55DD 55DE 55ED 55II 62EL 62LE

16 17 18

45FF 31JK 31KJ 60DD 66DD 60CC 34MK 34KM 30OK 30KO 65JJ

19 20

55HF 55FH 70CL 70LC 35MK 35KM 40GC 40CG

21 22 23

Set shift lever at 10 Place one pencil arm at H on upper circle stud Place other pencil arm at L on upper crank pin and draw design When each design is finished advance shift lever five divisions at a time until 70 is reached This completes the design

Set shift lever at 10 Place one pencil arm at K on upper circle stud Place other pencil arm at H on upper crank pin and draw design When each design is finished advance shift lever three divisions at a time until 46 is reached This completes the inner design Set shift lever at 16 Place one pencil arm at G on upper circle stud Place other pencil arm at L on upper crank pin and draw design When each design is finished advance shift lever three divisions at a time until 61 is reached This completes the outer design

Set shift lever at 10 Place one pencil arm at I on upper crank pin Place other pencil arm at L on lower circle stud and draw design When each design is finished advance shift lever three divisions until 46 is reached This will complete the inner design For the other design set shift lever at 10 Place one pencil arm at E on upper crank pin Place other pencil arm at L on lower circle stud and draw design When each design is finished advance shift lever two divisions at a time until 60 is reached This completes the outer design

KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS

Use a good ball-point pen for professional work - All figures on these pages were drawn with a ball-point pen

This setting would be written in Code as follows

(shift lever) (upper arm) (lower arm) 55_____________ ________________D D

NORTHERN SIGNAL COMPANY DIVISION OF FLO-TRONICS INC

SAUKVILLE WISCONSIN Part No HN-107

To Our Customers Hoot-Nanny - the MAGIC DESIGNER - was invented in 1929 and has been in constant production excepting for the war years since that time We think it is one of the most wonderful toys anyone could have-even adults write us enthusiastic letters Not all dealers carry the MAGIC DESIGNER all year round - many dealers feel that toys are just for Christmas If your dealer does not have the MAGIC DESIGNER - or paper refills - when you want them please write the factory - they are always in stock and well be happy to serve you promptly PRICES Magic Designer - $495 prepaid Paper Refills - Envelope of approximately 130 sheets (assorted colors) $100 prepaid

  • KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS
    • indexpdf

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

      Find Software

      Develop

      Community

      Site Support

      About

      Search

      SourceForgenet gt Find Software gt Complex Curved Shapes Generator Programs

      Complex Curved Shapes Generator Programs by akatz712

      Summary

      Files

      Support

      Develop

      Complex Curved Shapes Generator Programs Screenshot

      View more screenshots

      This computer program is an exact emulation of a toy which was sold years ago called Magic 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

      httpcomplexshapessourceforgenet

      GamesEntertainment Graphics Mathematics

      Show Subscribe

      Project Feed

      Screenshot Added

      akatz712 added a screenshot of Magic Paper

      1258AM on Jul 02 2009 by akatz712

      Screenshot Added

      akatz712 added a screenshot of Magic Parameters

      1257AM on Jul 02 2009 by akatz712

      Magic Designer Magic Designer v1_2 file released MagicDesignersetup_v1_2exe

      Here is a list of enhancements since May 23 2007

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

      0846PM on Jul 01 2009

      Magic Designer V0950 file released MagicDesigner_v0950zip

      -- 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

      1141PM on May 23 2007

      Magic Designer V0910 file released MagicDesigner_v0910zip

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

      1117PM on May 15 2007

      Magic Designer V0900 file released MagicDesigner_v0900zip

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

      0718PM on May 03 2007

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      httpsourceforgenetprojectscomplexshapes (1 of 2)732009 73842 PM

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      Magic Designer V0800 file released MagicDesignerzip

      This is the first release here

      1038PM on Apr 29 2007

      Sponsor Link Play the best Trading Card Game in the World

      Related Projects

      Hide In Picture matheval Object Oriented Euphoria Euphoria Programming Language wxEuphoria

      Complex Curved Shapes Generator Programs Actions

      Report inappropriate content

      About SourceForge About

      SourceForge Contact Us Jobs SF Advertising

      Find Software Search

      Software Browse by

      Category Most

      Popular Overall

      Most Active Overall

      Develop Software Start a

      Project Project

      Help Wanted

      New Projects

      Community SourceForge

      Forums The Blog sourceforge

      on Twitter Calendar

      Help Site

      Documentation Submit Support

      Requests Site Outages Feedback

      Copyright copy 2009 SourceForge Inc All rights reserved Terms of

      Use

      httpsourceforgenetprojectscomplexshapes (2 of 2)732009 73842 PM

      >

      WINDOWS CATEGORIES

      Antivirus

      Authoring tools

      CDDVD Tools

      Compression tools

      Desktop Enhancements

      File managers

      Internet

      IPOD TOOLS

      Mobile Phone Tools

      Multimedia

      Network Tools

      Office tools

      Others

      PORTABLE SOFTWARE

      Programming

      Science CAD

      Security

      System

      Tweak

      UNIX

      Windows Widgets

      Home Windows Others Miscellaneous Report spyware

      Magic Designer 12

      View more screenshots (2)

      Downloads 781 Add to download basket Tell us about an update

      User Rating Rated by

      Good (355) 18 user(s)

      Developer

      License Price

      Size OS

      Last Updated

      Category

      Andrew Katz | More programs

      Freeware FREE

      14 MB Windows All

      July 3rd 2009 1433 GMT [view history]

      C Others Miscellaneous

      Read user reviews (0) Add a review Refer to a friend

      Subscribe

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

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (1 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 gtgt SOFTPEDIA REVIEWS gtgt WEEKLY HIGHLIGHTS

      DVD ClonerSpyware Doctor1Click DVD CopyApollo DVD CopyABC Amber BlackBerProtected Music Co7-DAY TOP DOWNLOAD

      Program

      Avira AntiVir Personal - Free Antivirus 900403 116525Avira Antivir Virus Definition File Update July 2 2009 87963Windows Live Messenger 2009 14080640206 78828FreeZ Online TV 112 68081RemoveWGA 12 50610Y Multi Messenger 8x and 9x 48645Windows Live Messenger 8513021018 48622Nexus Radio 322 46964Microsoft Office 2007 38321

      Magic Designer description

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

      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 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 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 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

      Whats New in This Release [ read full changelog ] middot Added PDF printing using Larrys bezier smoothing middot Used Cairo for drawing middot Added multiple designs draw capability middot Fixed Help localization middot Changed defaults to solve mirror image bug and design orientation middot Added arm adjustment due to width of physical arms middot Saving advanced fields to MGS file middot Made shift lever edit box editable Banding ellipse improvements middot There is always an ellipse middot A radio is used to edit begin or end or center middot clicking left button continues with the same ellipse middot fine tune with arrow keys cross hairs middot Use pixmap to do immediate repaints for normal painting of drawing area middot Prev Curr Next use press and hold middot Remove Refresh and dirty since all designs are kept neat at all times middot Made two windows Esc to toggle maximize middot Changed the way BasicAdvancedcircle studs work middot Apply number to Undo Redo Prev Next as well as Draw middot Added buttons size (to show if designs are off page) slow (preview draw) ellipse middot (to hide ellipse) middot Grouped drawing ap

      Softpedia guarantees that Magic Designer 12 is 100 CLEAN which means it does not contain any form of malware including spyware viruses trojans and backdoors [read more gt]

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (2 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 32015 36195

      WEEKS BEST

      Messenger Plus Li Panda Antivirus Pr Microsoft Security AVG Free Edition 8 SUPER 2009 Build 36 Trillian Astra 40 Sun Java JRE 6 Upd Ad-Aware - Anniver Windows Vista Serv EVEREST Ultimate E IntelliJ IDEA 81 Microsoft NET Fra Nero BackItUp amp Bu BitDefender Total Windows 7 Manager SUMo 26176 SLOW-PCfighter 10 Virtual DJ 601 Avi2Dvd 05 Stable Windows 7 Release Windows 7 High Res Windows 7 Regional OpenOfficeorg 31 VistaCodecs x64Com Yahoo Zimbra Desk WinRAR 390 Beta 4 Seven Transformati Vista Rainbar 43 BitComet 113 Final Microsoft Office S

      TAGS magic designer | trigonometrical simulation | accurate drawing | magic designer | trigonometry | trigonometrical

      SHARE THIS

      HTML code for linking to this page

      Go to top

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

      copy 2001 - 2009 Softpedia All rights reserved Softpediatrade and the Softpediatrade logo are registered trademarks of SoftNews NET SRL

      Copyright Information | Privacy Policy | Terms of Use | Update your software | Archive

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (3 of 3)732009 73853 PM

      Line Thickness 1 2 3 4

      Select Color

      DRAWclip fine

      nice dots jagg

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line

      Back

      Browser Version of Magic Designer (Canvas and AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAX_canvashtm732009 73859 PM

      F1FFCC CancelSAVE

      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 button4 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 Bxy 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

      httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

      httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

      httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

      httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

      httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

      httpakatz712freehostiacomCommonhtml732009 73902 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

      httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

      httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

      httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

      httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

      httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

      httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

      2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

      sliders or F10F11 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

      httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

      httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

      httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

      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

      httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

      httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

      MagicDesigner - Notes

      There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

      httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

      httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

      httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

      httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

      MagicDesigner - Notes

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

      httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

      Physical Parameters of the Magic Designer

      Emulator for Magic DesignerMagic 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

      httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

      The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

      httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

      httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

      httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      calculate this is from Larry

      True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

      httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

      Programming the Magic Designer application

      History of the development of Magic Designer programsI 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 311 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

      httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

      httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

      So to calculate the starting angle of peg for the design ((centergear)+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

      httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

      httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

      httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

      httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line Thickness

      1 2

      3 4

      Line

      Background

      Browser Version of Magic Designer (AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

      httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

      My Other Links

      Andrew Katzs other stuff on the Web

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

      In the early 1980s 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

      httpakatz712freehostiacomOther_linkshtm732009 73911 PM

      My Favorite Sites

      Andys 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

      httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

      Andrew S Katz Resume

      ANDREW S KATZ

      38 Park St 24B Florham Park NJ 07932

      home (973)301-0448 e-mail AKatz712 gmailcom

      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 HPRTE OS Assembler [various]

      PROFESSIONAL EXPERIENCE

      Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

      httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

      Integrated cartridge fonts into the PCL interpreter

      C UNIX

      Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

      httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

      httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

      httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

      Kens Book - Windows Live

      Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

      Kens Book

      Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

      Family SafetyMobileDownloads

      Office Live

      All services

      MSN

      Autos

      Games

      Money

      Movies

      Music

      News

      Sports

      Weather

      AndrewbullSkyDrivebullKens Book

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

      Kens Book - Windows Live

      Shared with Everyone (public) copy 2009 Microsoft

      Privacy

      Terms of use

      Report Abuse

      Code of Conduct

      Account

      Feedback

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

      Peabody Penguins - Curve-A-Graph(c)

      Back when I was a kid I loved playing with Spirographcopy 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)

      httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

      • freehostiacom
        • MagicDesigner - Overview
        • Browser Version of Magic Designer (Canvas and AJAX)
        • MagicDesigner - Basic
        • MagicDesigner - Advanced
        • MagicDesigner - Common
        • MagicDesigner - Button Operations
        • MagicDesigner - Button Operations
        • MagicDesigner - Status Line
        • MagicDesigner - Notes
        • Physical Parameters of the Magic Designer
        • Programming the Magic Designer application
        • Browser Version of Magic Designer (AJAX)
        • Third Party Links related to Magic Designer
        • My Other Links
        • My Favorite Sites
        • Andrew S Katz Resume
          • 1stingamescom
            • httpwww1stingamescomgamesdatamagicdesignerindexpdf
              • sourceforgenet
                • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
                  • softpediacom
                    • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                      • livecom
                        • Kens Book - Windows Live
                          • userschariotnetau
                            • Peabody Penguins - Curve-A-Graph(c)
                                  1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                    1. form1
                                      1. x
                                        1. f1 soft
                                        2. f2 enter keyword
                                            1. form2
                                              1. x
                                                1. f1 [everything]
                                                  1. f2
                                                      1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                        1. form1
                                                          1. x
                                                            1. f1 Keywords
                                                              1. f2
                                                                1. form3
                                                                  1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                                  2. f2
                                                                    1. form2
                                                                      1. x
                                                                        1. f1 Search
                                                                          1. f2
                                                                              1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                                1. form8
                                                                                  1. f1
                                                                                  2. f2 Off
                                                                                  3. f3 Off
                                                                                  4. f4
                                                                                  5. x
                                                                                    1. f5 on
                                                                                      1. f6
                                                                                      2. f7
                                                                                      3. f8
                                                                                      4. f9
                                                                                      5. f10
                                                                                      6. f11
                                                                                      7. f12
                                                                                      8. f13
                                                                                      9. f14
                                                                                      10. f15
                                                                                      11. f16
                                                                                      12. f17
                                                                                      13. f18
                                                                                      14. f19
                                                                                      15. f20
                                                                                      16. f21
                                                                                      17. f22
                                                                                      18. f23
                                                                                      19. f24
                                                                                      20. f25
                                                                                        1. form4
                                                                                          1. x
                                                                                            1. f1 1
                                                                                                1. form2
                                                                                                  1. x
                                                                                                    1. f1 C
                                                                                                        1. form3
                                                                                                          1. x
                                                                                                            1. f1 C
                                                                                                              1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                                1. form7
                                                                                                                  1. x
                                                                                                                    1. f1 C
                                                                                                                        1. form8
                                                                                                                          1. x
                                                                                                                            1. f1 C
                                                                                                                                1. form9
                                                                                                                                  1. x
                                                                                                                                    1. f1
                                                                                                                                        1. form10
                                                                                                                                          1. x
                                                                                                                                            1. f1 1
                                                                                                                                                1. form11
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form12
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                        1. form13
                                                                                                                                                          1. f1
                                                                                                                                                          2. f2
                                                                                                                                                          3. f3
                                                                                                                                                          4. f4
                                                                                                                                                          5. f5
                                                                                                                                                          6. f6
                                                                                                                                                          7. f7
                                                                                                                                                          8. x
                                                                                                                                                            1. f8 []
                                                                                                                                                              1. f9
                                                                                                                                                                  1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                    1. form1
                                                                                                                                                                      1. x
                                                                                                                                                                        1. f1 Search the web
                                                                                                                                                                        2. f2 FOLDER
                                                                                                                                                                          1. f3
                                                                                                                                                                            1. form2
                                                                                                                                                                              1. x
                                                                                                                                                                                1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                                2. f2
                                                                                                                                                                                3. f3
Page 6: Magic Designer

7 8 9

13BB 13FF 40EJ 40JE 68LL 45EE

10 11 12

25KI 26IK 50EE 60EE 24OP 24PO 55HH 70EE

13 14 15

55MM 55DD 55DE 55ED 55II 62EL 62LE

16 17 18

45FF 31JK 31KJ 60DD 66DD 60CC 34MK 34KM 30OK 30KO 65JJ

19 20

55HF 55FH 70CL 70LC 35MK 35KM 40GC 40CG

21 22 23

Set shift lever at 10 Place one pencil arm at H on upper circle stud Place other pencil arm at L on upper crank pin and draw design When each design is finished advance shift lever five divisions at a time until 70 is reached This completes the design

Set shift lever at 10 Place one pencil arm at K on upper circle stud Place other pencil arm at H on upper crank pin and draw design When each design is finished advance shift lever three divisions at a time until 46 is reached This completes the inner design Set shift lever at 16 Place one pencil arm at G on upper circle stud Place other pencil arm at L on upper crank pin and draw design When each design is finished advance shift lever three divisions at a time until 61 is reached This completes the outer design

Set shift lever at 10 Place one pencil arm at I on upper crank pin Place other pencil arm at L on lower circle stud and draw design When each design is finished advance shift lever three divisions until 46 is reached This will complete the inner design For the other design set shift lever at 10 Place one pencil arm at E on upper crank pin Place other pencil arm at L on lower circle stud and draw design When each design is finished advance shift lever two divisions at a time until 60 is reached This completes the outer design

KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS

Use a good ball-point pen for professional work - All figures on these pages were drawn with a ball-point pen

This setting would be written in Code as follows

(shift lever) (upper arm) (lower arm) 55_____________ ________________D D

NORTHERN SIGNAL COMPANY DIVISION OF FLO-TRONICS INC

SAUKVILLE WISCONSIN Part No HN-107

To Our Customers Hoot-Nanny - the MAGIC DESIGNER - was invented in 1929 and has been in constant production excepting for the war years since that time We think it is one of the most wonderful toys anyone could have-even adults write us enthusiastic letters Not all dealers carry the MAGIC DESIGNER all year round - many dealers feel that toys are just for Christmas If your dealer does not have the MAGIC DESIGNER - or paper refills - when you want them please write the factory - they are always in stock and well be happy to serve you promptly PRICES Magic Designer - $495 prepaid Paper Refills - Envelope of approximately 130 sheets (assorted colors) $100 prepaid

  • KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS
    • indexpdf

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

      Find Software

      Develop

      Community

      Site Support

      About

      Search

      SourceForgenet gt Find Software gt Complex Curved Shapes Generator Programs

      Complex Curved Shapes Generator Programs by akatz712

      Summary

      Files

      Support

      Develop

      Complex Curved Shapes Generator Programs Screenshot

      View more screenshots

      This computer program is an exact emulation of a toy which was sold years ago called Magic 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

      httpcomplexshapessourceforgenet

      GamesEntertainment Graphics Mathematics

      Show Subscribe

      Project Feed

      Screenshot Added

      akatz712 added a screenshot of Magic Paper

      1258AM on Jul 02 2009 by akatz712

      Screenshot Added

      akatz712 added a screenshot of Magic Parameters

      1257AM on Jul 02 2009 by akatz712

      Magic Designer Magic Designer v1_2 file released MagicDesignersetup_v1_2exe

      Here is a list of enhancements since May 23 2007

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

      0846PM on Jul 01 2009

      Magic Designer V0950 file released MagicDesigner_v0950zip

      -- 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

      1141PM on May 23 2007

      Magic Designer V0910 file released MagicDesigner_v0910zip

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

      1117PM on May 15 2007

      Magic Designer V0900 file released MagicDesigner_v0900zip

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

      0718PM on May 03 2007

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      httpsourceforgenetprojectscomplexshapes (1 of 2)732009 73842 PM

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      Magic Designer V0800 file released MagicDesignerzip

      This is the first release here

      1038PM on Apr 29 2007

      Sponsor Link Play the best Trading Card Game in the World

      Related Projects

      Hide In Picture matheval Object Oriented Euphoria Euphoria Programming Language wxEuphoria

      Complex Curved Shapes Generator Programs Actions

      Report inappropriate content

      About SourceForge About

      SourceForge Contact Us Jobs SF Advertising

      Find Software Search

      Software Browse by

      Category Most

      Popular Overall

      Most Active Overall

      Develop Software Start a

      Project Project

      Help Wanted

      New Projects

      Community SourceForge

      Forums The Blog sourceforge

      on Twitter Calendar

      Help Site

      Documentation Submit Support

      Requests Site Outages Feedback

      Copyright copy 2009 SourceForge Inc All rights reserved Terms of

      Use

      httpsourceforgenetprojectscomplexshapes (2 of 2)732009 73842 PM

      >

      WINDOWS CATEGORIES

      Antivirus

      Authoring tools

      CDDVD Tools

      Compression tools

      Desktop Enhancements

      File managers

      Internet

      IPOD TOOLS

      Mobile Phone Tools

      Multimedia

      Network Tools

      Office tools

      Others

      PORTABLE SOFTWARE

      Programming

      Science CAD

      Security

      System

      Tweak

      UNIX

      Windows Widgets

      Home Windows Others Miscellaneous Report spyware

      Magic Designer 12

      View more screenshots (2)

      Downloads 781 Add to download basket Tell us about an update

      User Rating Rated by

      Good (355) 18 user(s)

      Developer

      License Price

      Size OS

      Last Updated

      Category

      Andrew Katz | More programs

      Freeware FREE

      14 MB Windows All

      July 3rd 2009 1433 GMT [view history]

      C Others Miscellaneous

      Read user reviews (0) Add a review Refer to a friend

      Subscribe

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

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (1 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 gtgt SOFTPEDIA REVIEWS gtgt WEEKLY HIGHLIGHTS

      DVD ClonerSpyware Doctor1Click DVD CopyApollo DVD CopyABC Amber BlackBerProtected Music Co7-DAY TOP DOWNLOAD

      Program

      Avira AntiVir Personal - Free Antivirus 900403 116525Avira Antivir Virus Definition File Update July 2 2009 87963Windows Live Messenger 2009 14080640206 78828FreeZ Online TV 112 68081RemoveWGA 12 50610Y Multi Messenger 8x and 9x 48645Windows Live Messenger 8513021018 48622Nexus Radio 322 46964Microsoft Office 2007 38321

      Magic Designer description

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

      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 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 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 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

      Whats New in This Release [ read full changelog ] middot Added PDF printing using Larrys bezier smoothing middot Used Cairo for drawing middot Added multiple designs draw capability middot Fixed Help localization middot Changed defaults to solve mirror image bug and design orientation middot Added arm adjustment due to width of physical arms middot Saving advanced fields to MGS file middot Made shift lever edit box editable Banding ellipse improvements middot There is always an ellipse middot A radio is used to edit begin or end or center middot clicking left button continues with the same ellipse middot fine tune with arrow keys cross hairs middot Use pixmap to do immediate repaints for normal painting of drawing area middot Prev Curr Next use press and hold middot Remove Refresh and dirty since all designs are kept neat at all times middot Made two windows Esc to toggle maximize middot Changed the way BasicAdvancedcircle studs work middot Apply number to Undo Redo Prev Next as well as Draw middot Added buttons size (to show if designs are off page) slow (preview draw) ellipse middot (to hide ellipse) middot Grouped drawing ap

      Softpedia guarantees that Magic Designer 12 is 100 CLEAN which means it does not contain any form of malware including spyware viruses trojans and backdoors [read more gt]

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (2 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 32015 36195

      WEEKS BEST

      Messenger Plus Li Panda Antivirus Pr Microsoft Security AVG Free Edition 8 SUPER 2009 Build 36 Trillian Astra 40 Sun Java JRE 6 Upd Ad-Aware - Anniver Windows Vista Serv EVEREST Ultimate E IntelliJ IDEA 81 Microsoft NET Fra Nero BackItUp amp Bu BitDefender Total Windows 7 Manager SUMo 26176 SLOW-PCfighter 10 Virtual DJ 601 Avi2Dvd 05 Stable Windows 7 Release Windows 7 High Res Windows 7 Regional OpenOfficeorg 31 VistaCodecs x64Com Yahoo Zimbra Desk WinRAR 390 Beta 4 Seven Transformati Vista Rainbar 43 BitComet 113 Final Microsoft Office S

      TAGS magic designer | trigonometrical simulation | accurate drawing | magic designer | trigonometry | trigonometrical

      SHARE THIS

      HTML code for linking to this page

      Go to top

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

      copy 2001 - 2009 Softpedia All rights reserved Softpediatrade and the Softpediatrade logo are registered trademarks of SoftNews NET SRL

      Copyright Information | Privacy Policy | Terms of Use | Update your software | Archive

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (3 of 3)732009 73853 PM

      Line Thickness 1 2 3 4

      Select Color

      DRAWclip fine

      nice dots jagg

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line

      Back

      Browser Version of Magic Designer (Canvas and AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAX_canvashtm732009 73859 PM

      F1FFCC CancelSAVE

      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 button4 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 Bxy 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

      httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

      httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

      httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

      httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

      httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

      httpakatz712freehostiacomCommonhtml732009 73902 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

      httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

      httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

      httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

      httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

      httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

      httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

      2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

      sliders or F10F11 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

      httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

      httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

      httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

      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

      httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

      httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

      MagicDesigner - Notes

      There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

      httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

      httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

      httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

      httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

      MagicDesigner - Notes

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

      httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

      Physical Parameters of the Magic Designer

      Emulator for Magic DesignerMagic 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

      httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

      The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

      httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

      httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

      httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      calculate this is from Larry

      True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

      httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

      Programming the Magic Designer application

      History of the development of Magic Designer programsI 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 311 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

      httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

      httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

      So to calculate the starting angle of peg for the design ((centergear)+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

      httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

      httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

      httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

      httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line Thickness

      1 2

      3 4

      Line

      Background

      Browser Version of Magic Designer (AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

      httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

      My Other Links

      Andrew Katzs other stuff on the Web

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

      In the early 1980s 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

      httpakatz712freehostiacomOther_linkshtm732009 73911 PM

      My Favorite Sites

      Andys 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

      httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

      Andrew S Katz Resume

      ANDREW S KATZ

      38 Park St 24B Florham Park NJ 07932

      home (973)301-0448 e-mail AKatz712 gmailcom

      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 HPRTE OS Assembler [various]

      PROFESSIONAL EXPERIENCE

      Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

      httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

      Integrated cartridge fonts into the PCL interpreter

      C UNIX

      Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

      httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

      httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

      httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

      Kens Book - Windows Live

      Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

      Kens Book

      Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

      Family SafetyMobileDownloads

      Office Live

      All services

      MSN

      Autos

      Games

      Money

      Movies

      Music

      News

      Sports

      Weather

      AndrewbullSkyDrivebullKens Book

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

      Kens Book - Windows Live

      Shared with Everyone (public) copy 2009 Microsoft

      Privacy

      Terms of use

      Report Abuse

      Code of Conduct

      Account

      Feedback

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

      Peabody Penguins - Curve-A-Graph(c)

      Back when I was a kid I loved playing with Spirographcopy 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)

      httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

      • freehostiacom
        • MagicDesigner - Overview
        • Browser Version of Magic Designer (Canvas and AJAX)
        • MagicDesigner - Basic
        • MagicDesigner - Advanced
        • MagicDesigner - Common
        • MagicDesigner - Button Operations
        • MagicDesigner - Button Operations
        • MagicDesigner - Status Line
        • MagicDesigner - Notes
        • Physical Parameters of the Magic Designer
        • Programming the Magic Designer application
        • Browser Version of Magic Designer (AJAX)
        • Third Party Links related to Magic Designer
        • My Other Links
        • My Favorite Sites
        • Andrew S Katz Resume
          • 1stingamescom
            • httpwww1stingamescomgamesdatamagicdesignerindexpdf
              • sourceforgenet
                • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
                  • softpediacom
                    • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                      • livecom
                        • Kens Book - Windows Live
                          • userschariotnetau
                            • Peabody Penguins - Curve-A-Graph(c)
                                  1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                    1. form1
                                      1. x
                                        1. f1 soft
                                        2. f2 enter keyword
                                            1. form2
                                              1. x
                                                1. f1 [everything]
                                                  1. f2
                                                      1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                        1. form1
                                                          1. x
                                                            1. f1 Keywords
                                                              1. f2
                                                                1. form3
                                                                  1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                                  2. f2
                                                                    1. form2
                                                                      1. x
                                                                        1. f1 Search
                                                                          1. f2
                                                                              1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                                1. form8
                                                                                  1. f1
                                                                                  2. f2 Off
                                                                                  3. f3 Off
                                                                                  4. f4
                                                                                  5. x
                                                                                    1. f5 on
                                                                                      1. f6
                                                                                      2. f7
                                                                                      3. f8
                                                                                      4. f9
                                                                                      5. f10
                                                                                      6. f11
                                                                                      7. f12
                                                                                      8. f13
                                                                                      9. f14
                                                                                      10. f15
                                                                                      11. f16
                                                                                      12. f17
                                                                                      13. f18
                                                                                      14. f19
                                                                                      15. f20
                                                                                      16. f21
                                                                                      17. f22
                                                                                      18. f23
                                                                                      19. f24
                                                                                      20. f25
                                                                                        1. form4
                                                                                          1. x
                                                                                            1. f1 1
                                                                                                1. form2
                                                                                                  1. x
                                                                                                    1. f1 C
                                                                                                        1. form3
                                                                                                          1. x
                                                                                                            1. f1 C
                                                                                                              1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                                1. form7
                                                                                                                  1. x
                                                                                                                    1. f1 C
                                                                                                                        1. form8
                                                                                                                          1. x
                                                                                                                            1. f1 C
                                                                                                                                1. form9
                                                                                                                                  1. x
                                                                                                                                    1. f1
                                                                                                                                        1. form10
                                                                                                                                          1. x
                                                                                                                                            1. f1 1
                                                                                                                                                1. form11
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form12
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                        1. form13
                                                                                                                                                          1. f1
                                                                                                                                                          2. f2
                                                                                                                                                          3. f3
                                                                                                                                                          4. f4
                                                                                                                                                          5. f5
                                                                                                                                                          6. f6
                                                                                                                                                          7. f7
                                                                                                                                                          8. x
                                                                                                                                                            1. f8 []
                                                                                                                                                              1. f9
                                                                                                                                                                  1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                    1. form1
                                                                                                                                                                      1. x
                                                                                                                                                                        1. f1 Search the web
                                                                                                                                                                        2. f2 FOLDER
                                                                                                                                                                          1. f3
                                                                                                                                                                            1. form2
                                                                                                                                                                              1. x
                                                                                                                                                                                1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                                2. f2
                                                                                                                                                                                3. f3
Page 7: Magic Designer

19 20

55HF 55FH 70CL 70LC 35MK 35KM 40GC 40CG

21 22 23

Set shift lever at 10 Place one pencil arm at H on upper circle stud Place other pencil arm at L on upper crank pin and draw design When each design is finished advance shift lever five divisions at a time until 70 is reached This completes the design

Set shift lever at 10 Place one pencil arm at K on upper circle stud Place other pencil arm at H on upper crank pin and draw design When each design is finished advance shift lever three divisions at a time until 46 is reached This completes the inner design Set shift lever at 16 Place one pencil arm at G on upper circle stud Place other pencil arm at L on upper crank pin and draw design When each design is finished advance shift lever three divisions at a time until 61 is reached This completes the outer design

Set shift lever at 10 Place one pencil arm at I on upper crank pin Place other pencil arm at L on lower circle stud and draw design When each design is finished advance shift lever three divisions until 46 is reached This will complete the inner design For the other design set shift lever at 10 Place one pencil arm at E on upper crank pin Place other pencil arm at L on lower circle stud and draw design When each design is finished advance shift lever two divisions at a time until 60 is reached This completes the outer design

KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS

Use a good ball-point pen for professional work - All figures on these pages were drawn with a ball-point pen

This setting would be written in Code as follows

(shift lever) (upper arm) (lower arm) 55_____________ ________________D D

NORTHERN SIGNAL COMPANY DIVISION OF FLO-TRONICS INC

SAUKVILLE WISCONSIN Part No HN-107

To Our Customers Hoot-Nanny - the MAGIC DESIGNER - was invented in 1929 and has been in constant production excepting for the war years since that time We think it is one of the most wonderful toys anyone could have-even adults write us enthusiastic letters Not all dealers carry the MAGIC DESIGNER all year round - many dealers feel that toys are just for Christmas If your dealer does not have the MAGIC DESIGNER - or paper refills - when you want them please write the factory - they are always in stock and well be happy to serve you promptly PRICES Magic Designer - $495 prepaid Paper Refills - Envelope of approximately 130 sheets (assorted colors) $100 prepaid

  • KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS
    • indexpdf

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

      Find Software

      Develop

      Community

      Site Support

      About

      Search

      SourceForgenet gt Find Software gt Complex Curved Shapes Generator Programs

      Complex Curved Shapes Generator Programs by akatz712

      Summary

      Files

      Support

      Develop

      Complex Curved Shapes Generator Programs Screenshot

      View more screenshots

      This computer program is an exact emulation of a toy which was sold years ago called Magic 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

      httpcomplexshapessourceforgenet

      GamesEntertainment Graphics Mathematics

      Show Subscribe

      Project Feed

      Screenshot Added

      akatz712 added a screenshot of Magic Paper

      1258AM on Jul 02 2009 by akatz712

      Screenshot Added

      akatz712 added a screenshot of Magic Parameters

      1257AM on Jul 02 2009 by akatz712

      Magic Designer Magic Designer v1_2 file released MagicDesignersetup_v1_2exe

      Here is a list of enhancements since May 23 2007

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

      0846PM on Jul 01 2009

      Magic Designer V0950 file released MagicDesigner_v0950zip

      -- 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

      1141PM on May 23 2007

      Magic Designer V0910 file released MagicDesigner_v0910zip

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

      1117PM on May 15 2007

      Magic Designer V0900 file released MagicDesigner_v0900zip

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

      0718PM on May 03 2007

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      httpsourceforgenetprojectscomplexshapes (1 of 2)732009 73842 PM

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      Magic Designer V0800 file released MagicDesignerzip

      This is the first release here

      1038PM on Apr 29 2007

      Sponsor Link Play the best Trading Card Game in the World

      Related Projects

      Hide In Picture matheval Object Oriented Euphoria Euphoria Programming Language wxEuphoria

      Complex Curved Shapes Generator Programs Actions

      Report inappropriate content

      About SourceForge About

      SourceForge Contact Us Jobs SF Advertising

      Find Software Search

      Software Browse by

      Category Most

      Popular Overall

      Most Active Overall

      Develop Software Start a

      Project Project

      Help Wanted

      New Projects

      Community SourceForge

      Forums The Blog sourceforge

      on Twitter Calendar

      Help Site

      Documentation Submit Support

      Requests Site Outages Feedback

      Copyright copy 2009 SourceForge Inc All rights reserved Terms of

      Use

      httpsourceforgenetprojectscomplexshapes (2 of 2)732009 73842 PM

      >

      WINDOWS CATEGORIES

      Antivirus

      Authoring tools

      CDDVD Tools

      Compression tools

      Desktop Enhancements

      File managers

      Internet

      IPOD TOOLS

      Mobile Phone Tools

      Multimedia

      Network Tools

      Office tools

      Others

      PORTABLE SOFTWARE

      Programming

      Science CAD

      Security

      System

      Tweak

      UNIX

      Windows Widgets

      Home Windows Others Miscellaneous Report spyware

      Magic Designer 12

      View more screenshots (2)

      Downloads 781 Add to download basket Tell us about an update

      User Rating Rated by

      Good (355) 18 user(s)

      Developer

      License Price

      Size OS

      Last Updated

      Category

      Andrew Katz | More programs

      Freeware FREE

      14 MB Windows All

      July 3rd 2009 1433 GMT [view history]

      C Others Miscellaneous

      Read user reviews (0) Add a review Refer to a friend

      Subscribe

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

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (1 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 gtgt SOFTPEDIA REVIEWS gtgt WEEKLY HIGHLIGHTS

      DVD ClonerSpyware Doctor1Click DVD CopyApollo DVD CopyABC Amber BlackBerProtected Music Co7-DAY TOP DOWNLOAD

      Program

      Avira AntiVir Personal - Free Antivirus 900403 116525Avira Antivir Virus Definition File Update July 2 2009 87963Windows Live Messenger 2009 14080640206 78828FreeZ Online TV 112 68081RemoveWGA 12 50610Y Multi Messenger 8x and 9x 48645Windows Live Messenger 8513021018 48622Nexus Radio 322 46964Microsoft Office 2007 38321

      Magic Designer description

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

      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 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 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 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

      Whats New in This Release [ read full changelog ] middot Added PDF printing using Larrys bezier smoothing middot Used Cairo for drawing middot Added multiple designs draw capability middot Fixed Help localization middot Changed defaults to solve mirror image bug and design orientation middot Added arm adjustment due to width of physical arms middot Saving advanced fields to MGS file middot Made shift lever edit box editable Banding ellipse improvements middot There is always an ellipse middot A radio is used to edit begin or end or center middot clicking left button continues with the same ellipse middot fine tune with arrow keys cross hairs middot Use pixmap to do immediate repaints for normal painting of drawing area middot Prev Curr Next use press and hold middot Remove Refresh and dirty since all designs are kept neat at all times middot Made two windows Esc to toggle maximize middot Changed the way BasicAdvancedcircle studs work middot Apply number to Undo Redo Prev Next as well as Draw middot Added buttons size (to show if designs are off page) slow (preview draw) ellipse middot (to hide ellipse) middot Grouped drawing ap

      Softpedia guarantees that Magic Designer 12 is 100 CLEAN which means it does not contain any form of malware including spyware viruses trojans and backdoors [read more gt]

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (2 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 32015 36195

      WEEKS BEST

      Messenger Plus Li Panda Antivirus Pr Microsoft Security AVG Free Edition 8 SUPER 2009 Build 36 Trillian Astra 40 Sun Java JRE 6 Upd Ad-Aware - Anniver Windows Vista Serv EVEREST Ultimate E IntelliJ IDEA 81 Microsoft NET Fra Nero BackItUp amp Bu BitDefender Total Windows 7 Manager SUMo 26176 SLOW-PCfighter 10 Virtual DJ 601 Avi2Dvd 05 Stable Windows 7 Release Windows 7 High Res Windows 7 Regional OpenOfficeorg 31 VistaCodecs x64Com Yahoo Zimbra Desk WinRAR 390 Beta 4 Seven Transformati Vista Rainbar 43 BitComet 113 Final Microsoft Office S

      TAGS magic designer | trigonometrical simulation | accurate drawing | magic designer | trigonometry | trigonometrical

      SHARE THIS

      HTML code for linking to this page

      Go to top

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

      copy 2001 - 2009 Softpedia All rights reserved Softpediatrade and the Softpediatrade logo are registered trademarks of SoftNews NET SRL

      Copyright Information | Privacy Policy | Terms of Use | Update your software | Archive

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (3 of 3)732009 73853 PM

      Line Thickness 1 2 3 4

      Select Color

      DRAWclip fine

      nice dots jagg

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line

      Back

      Browser Version of Magic Designer (Canvas and AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAX_canvashtm732009 73859 PM

      F1FFCC CancelSAVE

      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 button4 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 Bxy 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

      httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

      httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

      httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

      httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

      httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

      httpakatz712freehostiacomCommonhtml732009 73902 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

      httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

      httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

      httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

      httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

      httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

      httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

      2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

      sliders or F10F11 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

      httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

      httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

      httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

      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

      httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

      httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

      MagicDesigner - Notes

      There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

      httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

      httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

      httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

      httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

      MagicDesigner - Notes

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

      httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

      Physical Parameters of the Magic Designer

      Emulator for Magic DesignerMagic 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

      httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

      The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

      httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

      httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

      httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      calculate this is from Larry

      True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

      httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

      Programming the Magic Designer application

      History of the development of Magic Designer programsI 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 311 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

      httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

      httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

      So to calculate the starting angle of peg for the design ((centergear)+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

      httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

      httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

      httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

      httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line Thickness

      1 2

      3 4

      Line

      Background

      Browser Version of Magic Designer (AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

      httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

      My Other Links

      Andrew Katzs other stuff on the Web

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

      In the early 1980s 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

      httpakatz712freehostiacomOther_linkshtm732009 73911 PM

      My Favorite Sites

      Andys 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

      httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

      Andrew S Katz Resume

      ANDREW S KATZ

      38 Park St 24B Florham Park NJ 07932

      home (973)301-0448 e-mail AKatz712 gmailcom

      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 HPRTE OS Assembler [various]

      PROFESSIONAL EXPERIENCE

      Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

      httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

      Integrated cartridge fonts into the PCL interpreter

      C UNIX

      Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

      httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

      httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

      httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

      Kens Book - Windows Live

      Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

      Kens Book

      Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

      Family SafetyMobileDownloads

      Office Live

      All services

      MSN

      Autos

      Games

      Money

      Movies

      Music

      News

      Sports

      Weather

      AndrewbullSkyDrivebullKens Book

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

      Kens Book - Windows Live

      Shared with Everyone (public) copy 2009 Microsoft

      Privacy

      Terms of use

      Report Abuse

      Code of Conduct

      Account

      Feedback

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

      Peabody Penguins - Curve-A-Graph(c)

      Back when I was a kid I loved playing with Spirographcopy 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)

      httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

      • freehostiacom
        • MagicDesigner - Overview
        • Browser Version of Magic Designer (Canvas and AJAX)
        • MagicDesigner - Basic
        • MagicDesigner - Advanced
        • MagicDesigner - Common
        • MagicDesigner - Button Operations
        • MagicDesigner - Button Operations
        • MagicDesigner - Status Line
        • MagicDesigner - Notes
        • Physical Parameters of the Magic Designer
        • Programming the Magic Designer application
        • Browser Version of Magic Designer (AJAX)
        • Third Party Links related to Magic Designer
        • My Other Links
        • My Favorite Sites
        • Andrew S Katz Resume
          • 1stingamescom
            • httpwww1stingamescomgamesdatamagicdesignerindexpdf
              • sourceforgenet
                • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
                  • softpediacom
                    • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                      • livecom
                        • Kens Book - Windows Live
                          • userschariotnetau
                            • Peabody Penguins - Curve-A-Graph(c)
                                  1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                    1. form1
                                      1. x
                                        1. f1 soft
                                        2. f2 enter keyword
                                            1. form2
                                              1. x
                                                1. f1 [everything]
                                                  1. f2
                                                      1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                        1. form1
                                                          1. x
                                                            1. f1 Keywords
                                                              1. f2
                                                                1. form3
                                                                  1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                                  2. f2
                                                                    1. form2
                                                                      1. x
                                                                        1. f1 Search
                                                                          1. f2
                                                                              1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                                1. form8
                                                                                  1. f1
                                                                                  2. f2 Off
                                                                                  3. f3 Off
                                                                                  4. f4
                                                                                  5. x
                                                                                    1. f5 on
                                                                                      1. f6
                                                                                      2. f7
                                                                                      3. f8
                                                                                      4. f9
                                                                                      5. f10
                                                                                      6. f11
                                                                                      7. f12
                                                                                      8. f13
                                                                                      9. f14
                                                                                      10. f15
                                                                                      11. f16
                                                                                      12. f17
                                                                                      13. f18
                                                                                      14. f19
                                                                                      15. f20
                                                                                      16. f21
                                                                                      17. f22
                                                                                      18. f23
                                                                                      19. f24
                                                                                      20. f25
                                                                                        1. form4
                                                                                          1. x
                                                                                            1. f1 1
                                                                                                1. form2
                                                                                                  1. x
                                                                                                    1. f1 C
                                                                                                        1. form3
                                                                                                          1. x
                                                                                                            1. f1 C
                                                                                                              1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                                1. form7
                                                                                                                  1. x
                                                                                                                    1. f1 C
                                                                                                                        1. form8
                                                                                                                          1. x
                                                                                                                            1. f1 C
                                                                                                                                1. form9
                                                                                                                                  1. x
                                                                                                                                    1. f1
                                                                                                                                        1. form10
                                                                                                                                          1. x
                                                                                                                                            1. f1 1
                                                                                                                                                1. form11
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form12
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                        1. form13
                                                                                                                                                          1. f1
                                                                                                                                                          2. f2
                                                                                                                                                          3. f3
                                                                                                                                                          4. f4
                                                                                                                                                          5. f5
                                                                                                                                                          6. f6
                                                                                                                                                          7. f7
                                                                                                                                                          8. x
                                                                                                                                                            1. f8 []
                                                                                                                                                              1. f9
                                                                                                                                                                  1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                    1. form1
                                                                                                                                                                      1. x
                                                                                                                                                                        1. f1 Search the web
                                                                                                                                                                        2. f2 FOLDER
                                                                                                                                                                          1. f3
                                                                                                                                                                            1. form2
                                                                                                                                                                              1. x
                                                                                                                                                                                1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                                2. f2
                                                                                                                                                                                3. f3
Page 8: Magic Designer

This setting would be written in Code as follows

(shift lever) (upper arm) (lower arm) 55_____________ ________________D D

NORTHERN SIGNAL COMPANY DIVISION OF FLO-TRONICS INC

SAUKVILLE WISCONSIN Part No HN-107

To Our Customers Hoot-Nanny - the MAGIC DESIGNER - was invented in 1929 and has been in constant production excepting for the war years since that time We think it is one of the most wonderful toys anyone could have-even adults write us enthusiastic letters Not all dealers carry the MAGIC DESIGNER all year round - many dealers feel that toys are just for Christmas If your dealer does not have the MAGIC DESIGNER - or paper refills - when you want them please write the factory - they are always in stock and well be happy to serve you promptly PRICES Magic Designer - $495 prepaid Paper Refills - Envelope of approximately 130 sheets (assorted colors) $100 prepaid

  • KEEP YOUR PENCIL SHARP-YOU WILL GET BEST RESULTS
    • indexpdf

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

      Find Software

      Develop

      Community

      Site Support

      About

      Search

      SourceForgenet gt Find Software gt Complex Curved Shapes Generator Programs

      Complex Curved Shapes Generator Programs by akatz712

      Summary

      Files

      Support

      Develop

      Complex Curved Shapes Generator Programs Screenshot

      View more screenshots

      This computer program is an exact emulation of a toy which was sold years ago called Magic 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

      httpcomplexshapessourceforgenet

      GamesEntertainment Graphics Mathematics

      Show Subscribe

      Project Feed

      Screenshot Added

      akatz712 added a screenshot of Magic Paper

      1258AM on Jul 02 2009 by akatz712

      Screenshot Added

      akatz712 added a screenshot of Magic Parameters

      1257AM on Jul 02 2009 by akatz712

      Magic Designer Magic Designer v1_2 file released MagicDesignersetup_v1_2exe

      Here is a list of enhancements since May 23 2007

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

      0846PM on Jul 01 2009

      Magic Designer V0950 file released MagicDesigner_v0950zip

      -- 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

      1141PM on May 23 2007

      Magic Designer V0910 file released MagicDesigner_v0910zip

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

      1117PM on May 15 2007

      Magic Designer V0900 file released MagicDesigner_v0900zip

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

      0718PM on May 03 2007

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      httpsourceforgenetprojectscomplexshapes (1 of 2)732009 73842 PM

      Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

      Magic Designer V0800 file released MagicDesignerzip

      This is the first release here

      1038PM on Apr 29 2007

      Sponsor Link Play the best Trading Card Game in the World

      Related Projects

      Hide In Picture matheval Object Oriented Euphoria Euphoria Programming Language wxEuphoria

      Complex Curved Shapes Generator Programs Actions

      Report inappropriate content

      About SourceForge About

      SourceForge Contact Us Jobs SF Advertising

      Find Software Search

      Software Browse by

      Category Most

      Popular Overall

      Most Active Overall

      Develop Software Start a

      Project Project

      Help Wanted

      New Projects

      Community SourceForge

      Forums The Blog sourceforge

      on Twitter Calendar

      Help Site

      Documentation Submit Support

      Requests Site Outages Feedback

      Copyright copy 2009 SourceForge Inc All rights reserved Terms of

      Use

      httpsourceforgenetprojectscomplexshapes (2 of 2)732009 73842 PM

      >

      WINDOWS CATEGORIES

      Antivirus

      Authoring tools

      CDDVD Tools

      Compression tools

      Desktop Enhancements

      File managers

      Internet

      IPOD TOOLS

      Mobile Phone Tools

      Multimedia

      Network Tools

      Office tools

      Others

      PORTABLE SOFTWARE

      Programming

      Science CAD

      Security

      System

      Tweak

      UNIX

      Windows Widgets

      Home Windows Others Miscellaneous Report spyware

      Magic Designer 12

      View more screenshots (2)

      Downloads 781 Add to download basket Tell us about an update

      User Rating Rated by

      Good (355) 18 user(s)

      Developer

      License Price

      Size OS

      Last Updated

      Category

      Andrew Katz | More programs

      Freeware FREE

      14 MB Windows All

      July 3rd 2009 1433 GMT [view history]

      C Others Miscellaneous

      Read user reviews (0) Add a review Refer to a friend

      Subscribe

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

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (1 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 gtgt SOFTPEDIA REVIEWS gtgt WEEKLY HIGHLIGHTS

      DVD ClonerSpyware Doctor1Click DVD CopyApollo DVD CopyABC Amber BlackBerProtected Music Co7-DAY TOP DOWNLOAD

      Program

      Avira AntiVir Personal - Free Antivirus 900403 116525Avira Antivir Virus Definition File Update July 2 2009 87963Windows Live Messenger 2009 14080640206 78828FreeZ Online TV 112 68081RemoveWGA 12 50610Y Multi Messenger 8x and 9x 48645Windows Live Messenger 8513021018 48622Nexus Radio 322 46964Microsoft Office 2007 38321

      Magic Designer description

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

      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 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 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 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

      Whats New in This Release [ read full changelog ] middot Added PDF printing using Larrys bezier smoothing middot Used Cairo for drawing middot Added multiple designs draw capability middot Fixed Help localization middot Changed defaults to solve mirror image bug and design orientation middot Added arm adjustment due to width of physical arms middot Saving advanced fields to MGS file middot Made shift lever edit box editable Banding ellipse improvements middot There is always an ellipse middot A radio is used to edit begin or end or center middot clicking left button continues with the same ellipse middot fine tune with arrow keys cross hairs middot Use pixmap to do immediate repaints for normal painting of drawing area middot Prev Curr Next use press and hold middot Remove Refresh and dirty since all designs are kept neat at all times middot Made two windows Esc to toggle maximize middot Changed the way BasicAdvancedcircle studs work middot Apply number to Undo Redo Prev Next as well as Draw middot Added buttons size (to show if designs are off page) slow (preview draw) ellipse middot (to hide ellipse) middot Grouped drawing ap

      Softpedia guarantees that Magic Designer 12 is 100 CLEAN which means it does not contain any form of malware including spyware viruses trojans and backdoors [read more gt]

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (2 of 3)732009 73853 PM

      Download Magic Designer 12 - 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 32015 36195

      WEEKS BEST

      Messenger Plus Li Panda Antivirus Pr Microsoft Security AVG Free Edition 8 SUPER 2009 Build 36 Trillian Astra 40 Sun Java JRE 6 Upd Ad-Aware - Anniver Windows Vista Serv EVEREST Ultimate E IntelliJ IDEA 81 Microsoft NET Fra Nero BackItUp amp Bu BitDefender Total Windows 7 Manager SUMo 26176 SLOW-PCfighter 10 Virtual DJ 601 Avi2Dvd 05 Stable Windows 7 Release Windows 7 High Res Windows 7 Regional OpenOfficeorg 31 VistaCodecs x64Com Yahoo Zimbra Desk WinRAR 390 Beta 4 Seven Transformati Vista Rainbar 43 BitComet 113 Final Microsoft Office S

      TAGS magic designer | trigonometrical simulation | accurate drawing | magic designer | trigonometry | trigonometrical

      SHARE THIS

      HTML code for linking to this page

      Go to top

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

      copy 2001 - 2009 Softpedia All rights reserved Softpediatrade and the Softpediatrade logo are registered trademarks of SoftNews NET SRL

      Copyright Information | Privacy Policy | Terms of Use | Update your software | Archive

      httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (3 of 3)732009 73853 PM

      Line Thickness 1 2 3 4

      Select Color

      DRAWclip fine

      nice dots jagg

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line

      Back

      Browser Version of Magic Designer (Canvas and AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAX_canvashtm732009 73859 PM

      F1FFCC CancelSAVE

      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 button4 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 Bxy 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

      httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

      httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

      httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

      httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

      httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

      httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

      httpakatz712freehostiacomCommonhtml732009 73902 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

      httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

      httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

      httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

      httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

      httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

      httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

      2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

      sliders or F10F11 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

      httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

      httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

      httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

      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

      httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

      httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

      MagicDesigner - Notes

      There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

      httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

      httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

      httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

      httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

      MagicDesigner - Notes

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

      httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

      Physical Parameters of the Magic Designer

      Emulator for Magic DesignerMagic 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

      httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

      The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

      httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

      httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

      httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      calculate this is from Larry

      True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

      httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

      Physical Parameters of the Magic Designer

      httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

      Programming the Magic Designer application

      History of the development of Magic Designer programsI 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 311 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

      httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

      httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

      So to calculate the starting angle of peg for the design ((centergear)+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

      httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

      httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

      httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

      httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

      Left Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Right Arm

      A

      B

      C

      D

      E

      F

      G

      H

      I

      J

      K

      L

      M

      N

      O

      P

      Q

      R

      Shift Lever

      Line Thickness

      1 2

      3 4

      Line

      Background

      Browser Version of Magic Designer (AJAX)

      httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

      httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

      My Other Links

      Andrew Katzs other stuff on the Web

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

      In the early 1980s 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

      httpakatz712freehostiacomOther_linkshtm732009 73911 PM

      My Favorite Sites

      Andys 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

      httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

      Andrew S Katz Resume

      ANDREW S KATZ

      38 Park St 24B Florham Park NJ 07932

      home (973)301-0448 e-mail AKatz712 gmailcom

      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 HPRTE OS Assembler [various]

      PROFESSIONAL EXPERIENCE

      Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

      httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

      Integrated cartridge fonts into the PCL interpreter

      C UNIX

      Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

      httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

      httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

      httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

      Kens Book - Windows Live

      Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

      Kens Book

      Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

      Family SafetyMobileDownloads

      Office Live

      All services

      MSN

      Autos

      Games

      Money

      Movies

      Music

      News

      Sports

      Weather

      AndrewbullSkyDrivebullKens Book

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

      Kens Book - Windows Live

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

      Kens Book - Windows Live

      Shared with Everyone (public) copy 2009 Microsoft

      Privacy

      Terms of use

      Report Abuse

      Code of Conduct

      Account

      Feedback

      httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

      Peabody Penguins - Curve-A-Graph(c)

      Back when I was a kid I loved playing with Spirographcopy 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)

      httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

      • freehostiacom
        • MagicDesigner - Overview
        • Browser Version of Magic Designer (Canvas and AJAX)
        • MagicDesigner - Basic
        • MagicDesigner - Advanced
        • MagicDesigner - Common
        • MagicDesigner - Button Operations
        • MagicDesigner - Button Operations
        • MagicDesigner - Status Line
        • MagicDesigner - Notes
        • Physical Parameters of the Magic Designer
        • Programming the Magic Designer application
        • Browser Version of Magic Designer (AJAX)
        • Third Party Links related to Magic Designer
        • My Other Links
        • My Favorite Sites
        • Andrew S Katz Resume
          • 1stingamescom
            • httpwww1stingamescomgamesdatamagicdesignerindexpdf
              • sourceforgenet
                • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
                  • softpediacom
                    • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                      • livecom
                        • Kens Book - Windows Live
                          • userschariotnetau
                            • Peabody Penguins - Curve-A-Graph(c)
                                  1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                    1. form1
                                      1. x
                                        1. f1 soft
                                        2. f2 enter keyword
                                            1. form2
                                              1. x
                                                1. f1 [everything]
                                                  1. f2
                                                      1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                        1. form1
                                                          1. x
                                                            1. f1 Keywords
                                                              1. f2
                                                                1. form3
                                                                  1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                                  2. f2
                                                                    1. form2
                                                                      1. x
                                                                        1. f1 Search
                                                                          1. f2
                                                                              1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                                1. form8
                                                                                  1. f1
                                                                                  2. f2 Off
                                                                                  3. f3 Off
                                                                                  4. f4
                                                                                  5. x
                                                                                    1. f5 on
                                                                                      1. f6
                                                                                      2. f7
                                                                                      3. f8
                                                                                      4. f9
                                                                                      5. f10
                                                                                      6. f11
                                                                                      7. f12
                                                                                      8. f13
                                                                                      9. f14
                                                                                      10. f15
                                                                                      11. f16
                                                                                      12. f17
                                                                                      13. f18
                                                                                      14. f19
                                                                                      15. f20
                                                                                      16. f21
                                                                                      17. f22
                                                                                      18. f23
                                                                                      19. f24
                                                                                      20. f25
                                                                                        1. form4
                                                                                          1. x
                                                                                            1. f1 1
                                                                                                1. form2
                                                                                                  1. x
                                                                                                    1. f1 C
                                                                                                        1. form3
                                                                                                          1. x
                                                                                                            1. f1 C
                                                                                                              1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                                1. form7
                                                                                                                  1. x
                                                                                                                    1. f1 C
                                                                                                                        1. form8
                                                                                                                          1. x
                                                                                                                            1. f1 C
                                                                                                                                1. form9
                                                                                                                                  1. x
                                                                                                                                    1. f1
                                                                                                                                        1. form10
                                                                                                                                          1. x
                                                                                                                                            1. f1 1
                                                                                                                                                1. form11
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form12
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                        1. form13
                                                                                                                                                          1. f1
                                                                                                                                                          2. f2
                                                                                                                                                          3. f3
                                                                                                                                                          4. f4
                                                                                                                                                          5. f5
                                                                                                                                                          6. f6
                                                                                                                                                          7. f7
                                                                                                                                                          8. x
                                                                                                                                                            1. f8 []
                                                                                                                                                              1. f9
                                                                                                                                                                  1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                    1. form1
                                                                                                                                                                      1. x
                                                                                                                                                                        1. f1 Search the web
                                                                                                                                                                        2. f2 FOLDER
                                                                                                                                                                          1. f3
                                                                                                                                                                            1. form2
                                                                                                                                                                              1. x
                                                                                                                                                                                1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                                2. f2
                                                                                                                                                                                3. f3
Page 9: Magic Designer

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

Find Software

Develop

Community

Site Support

About

Search

SourceForgenet gt Find Software gt Complex Curved Shapes Generator Programs

Complex Curved Shapes Generator Programs by akatz712

Summary

Files

Support

Develop

Complex Curved Shapes Generator Programs Screenshot

View more screenshots

This computer program is an exact emulation of a toy which was sold years ago called Magic 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

httpcomplexshapessourceforgenet

GamesEntertainment Graphics Mathematics

Show Subscribe

Project Feed

Screenshot Added

akatz712 added a screenshot of Magic Paper

1258AM on Jul 02 2009 by akatz712

Screenshot Added

akatz712 added a screenshot of Magic Parameters

1257AM on Jul 02 2009 by akatz712

Magic Designer Magic Designer v1_2 file released MagicDesignersetup_v1_2exe

Here is a list of enhancements since May 23 2007

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

0846PM on Jul 01 2009

Magic Designer V0950 file released MagicDesigner_v0950zip

-- 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

1141PM on May 23 2007

Magic Designer V0910 file released MagicDesigner_v0910zip

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

1117PM on May 15 2007

Magic Designer V0900 file released MagicDesigner_v0900zip

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

0718PM on May 03 2007

Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

httpsourceforgenetprojectscomplexshapes (1 of 2)732009 73842 PM

Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

Magic Designer V0800 file released MagicDesignerzip

This is the first release here

1038PM on Apr 29 2007

Sponsor Link Play the best Trading Card Game in the World

Related Projects

Hide In Picture matheval Object Oriented Euphoria Euphoria Programming Language wxEuphoria

Complex Curved Shapes Generator Programs Actions

Report inappropriate content

About SourceForge About

SourceForge Contact Us Jobs SF Advertising

Find Software Search

Software Browse by

Category Most

Popular Overall

Most Active Overall

Develop Software Start a

Project Project

Help Wanted

New Projects

Community SourceForge

Forums The Blog sourceforge

on Twitter Calendar

Help Site

Documentation Submit Support

Requests Site Outages Feedback

Copyright copy 2009 SourceForge Inc All rights reserved Terms of

Use

httpsourceforgenetprojectscomplexshapes (2 of 2)732009 73842 PM

>

WINDOWS CATEGORIES

Antivirus

Authoring tools

CDDVD Tools

Compression tools

Desktop Enhancements

File managers

Internet

IPOD TOOLS

Mobile Phone Tools

Multimedia

Network Tools

Office tools

Others

PORTABLE SOFTWARE

Programming

Science CAD

Security

System

Tweak

UNIX

Windows Widgets

Home Windows Others Miscellaneous Report spyware

Magic Designer 12

View more screenshots (2)

Downloads 781 Add to download basket Tell us about an update

User Rating Rated by

Good (355) 18 user(s)

Developer

License Price

Size OS

Last Updated

Category

Andrew Katz | More programs

Freeware FREE

14 MB Windows All

July 3rd 2009 1433 GMT [view history]

C Others Miscellaneous

Read user reviews (0) Add a review Refer to a friend

Subscribe

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

httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (1 of 3)732009 73853 PM

Download Magic Designer 12 - 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 gtgt SOFTPEDIA REVIEWS gtgt WEEKLY HIGHLIGHTS

DVD ClonerSpyware Doctor1Click DVD CopyApollo DVD CopyABC Amber BlackBerProtected Music Co7-DAY TOP DOWNLOAD

Program

Avira AntiVir Personal - Free Antivirus 900403 116525Avira Antivir Virus Definition File Update July 2 2009 87963Windows Live Messenger 2009 14080640206 78828FreeZ Online TV 112 68081RemoveWGA 12 50610Y Multi Messenger 8x and 9x 48645Windows Live Messenger 8513021018 48622Nexus Radio 322 46964Microsoft Office 2007 38321

Magic Designer description

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

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 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 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 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

Whats New in This Release [ read full changelog ] middot Added PDF printing using Larrys bezier smoothing middot Used Cairo for drawing middot Added multiple designs draw capability middot Fixed Help localization middot Changed defaults to solve mirror image bug and design orientation middot Added arm adjustment due to width of physical arms middot Saving advanced fields to MGS file middot Made shift lever edit box editable Banding ellipse improvements middot There is always an ellipse middot A radio is used to edit begin or end or center middot clicking left button continues with the same ellipse middot fine tune with arrow keys cross hairs middot Use pixmap to do immediate repaints for normal painting of drawing area middot Prev Curr Next use press and hold middot Remove Refresh and dirty since all designs are kept neat at all times middot Made two windows Esc to toggle maximize middot Changed the way BasicAdvancedcircle studs work middot Apply number to Undo Redo Prev Next as well as Draw middot Added buttons size (to show if designs are off page) slow (preview draw) ellipse middot (to hide ellipse) middot Grouped drawing ap

Softpedia guarantees that Magic Designer 12 is 100 CLEAN which means it does not contain any form of malware including spyware viruses trojans and backdoors [read more gt]

httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (2 of 3)732009 73853 PM

Download Magic Designer 12 - 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 32015 36195

WEEKS BEST

Messenger Plus Li Panda Antivirus Pr Microsoft Security AVG Free Edition 8 SUPER 2009 Build 36 Trillian Astra 40 Sun Java JRE 6 Upd Ad-Aware - Anniver Windows Vista Serv EVEREST Ultimate E IntelliJ IDEA 81 Microsoft NET Fra Nero BackItUp amp Bu BitDefender Total Windows 7 Manager SUMo 26176 SLOW-PCfighter 10 Virtual DJ 601 Avi2Dvd 05 Stable Windows 7 Release Windows 7 High Res Windows 7 Regional OpenOfficeorg 31 VistaCodecs x64Com Yahoo Zimbra Desk WinRAR 390 Beta 4 Seven Transformati Vista Rainbar 43 BitComet 113 Final Microsoft Office S

TAGS magic designer | trigonometrical simulation | accurate drawing | magic designer | trigonometry | trigonometrical

SHARE THIS

HTML code for linking to this page

Go to top

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

copy 2001 - 2009 Softpedia All rights reserved Softpediatrade and the Softpediatrade logo are registered trademarks of SoftNews NET SRL

Copyright Information | Privacy Policy | Terms of Use | Update your software | Archive

httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (3 of 3)732009 73853 PM

Line Thickness 1 2 3 4

Select Color

DRAWclip fine

nice dots jagg

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line

Back

Browser Version of Magic Designer (Canvas and AJAX)

httpakatz712freehostiacomBrowser_Version_AJAX_canvashtm732009 73859 PM

F1FFCC CancelSAVE

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 button4 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 Bxy 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

httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

httpakatz712freehostiacomCommonhtml732009 73902 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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 10: Magic Designer

Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet

Magic Designer V0800 file released MagicDesignerzip

This is the first release here

1038PM on Apr 29 2007

Sponsor Link Play the best Trading Card Game in the World

Related Projects

Hide In Picture matheval Object Oriented Euphoria Euphoria Programming Language wxEuphoria

Complex Curved Shapes Generator Programs Actions

Report inappropriate content

About SourceForge About

SourceForge Contact Us Jobs SF Advertising

Find Software Search

Software Browse by

Category Most

Popular Overall

Most Active Overall

Develop Software Start a

Project Project

Help Wanted

New Projects

Community SourceForge

Forums The Blog sourceforge

on Twitter Calendar

Help Site

Documentation Submit Support

Requests Site Outages Feedback

Copyright copy 2009 SourceForge Inc All rights reserved Terms of

Use

httpsourceforgenetprojectscomplexshapes (2 of 2)732009 73842 PM

>

WINDOWS CATEGORIES

Antivirus

Authoring tools

CDDVD Tools

Compression tools

Desktop Enhancements

File managers

Internet

IPOD TOOLS

Mobile Phone Tools

Multimedia

Network Tools

Office tools

Others

PORTABLE SOFTWARE

Programming

Science CAD

Security

System

Tweak

UNIX

Windows Widgets

Home Windows Others Miscellaneous Report spyware

Magic Designer 12

View more screenshots (2)

Downloads 781 Add to download basket Tell us about an update

User Rating Rated by

Good (355) 18 user(s)

Developer

License Price

Size OS

Last Updated

Category

Andrew Katz | More programs

Freeware FREE

14 MB Windows All

July 3rd 2009 1433 GMT [view history]

C Others Miscellaneous

Read user reviews (0) Add a review Refer to a friend

Subscribe

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

httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (1 of 3)732009 73853 PM

Download Magic Designer 12 - 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 gtgt SOFTPEDIA REVIEWS gtgt WEEKLY HIGHLIGHTS

DVD ClonerSpyware Doctor1Click DVD CopyApollo DVD CopyABC Amber BlackBerProtected Music Co7-DAY TOP DOWNLOAD

Program

Avira AntiVir Personal - Free Antivirus 900403 116525Avira Antivir Virus Definition File Update July 2 2009 87963Windows Live Messenger 2009 14080640206 78828FreeZ Online TV 112 68081RemoveWGA 12 50610Y Multi Messenger 8x and 9x 48645Windows Live Messenger 8513021018 48622Nexus Radio 322 46964Microsoft Office 2007 38321

Magic Designer description

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

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 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 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 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

Whats New in This Release [ read full changelog ] middot Added PDF printing using Larrys bezier smoothing middot Used Cairo for drawing middot Added multiple designs draw capability middot Fixed Help localization middot Changed defaults to solve mirror image bug and design orientation middot Added arm adjustment due to width of physical arms middot Saving advanced fields to MGS file middot Made shift lever edit box editable Banding ellipse improvements middot There is always an ellipse middot A radio is used to edit begin or end or center middot clicking left button continues with the same ellipse middot fine tune with arrow keys cross hairs middot Use pixmap to do immediate repaints for normal painting of drawing area middot Prev Curr Next use press and hold middot Remove Refresh and dirty since all designs are kept neat at all times middot Made two windows Esc to toggle maximize middot Changed the way BasicAdvancedcircle studs work middot Apply number to Undo Redo Prev Next as well as Draw middot Added buttons size (to show if designs are off page) slow (preview draw) ellipse middot (to hide ellipse) middot Grouped drawing ap

Softpedia guarantees that Magic Designer 12 is 100 CLEAN which means it does not contain any form of malware including spyware viruses trojans and backdoors [read more gt]

httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (2 of 3)732009 73853 PM

Download Magic Designer 12 - 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 32015 36195

WEEKS BEST

Messenger Plus Li Panda Antivirus Pr Microsoft Security AVG Free Edition 8 SUPER 2009 Build 36 Trillian Astra 40 Sun Java JRE 6 Upd Ad-Aware - Anniver Windows Vista Serv EVEREST Ultimate E IntelliJ IDEA 81 Microsoft NET Fra Nero BackItUp amp Bu BitDefender Total Windows 7 Manager SUMo 26176 SLOW-PCfighter 10 Virtual DJ 601 Avi2Dvd 05 Stable Windows 7 Release Windows 7 High Res Windows 7 Regional OpenOfficeorg 31 VistaCodecs x64Com Yahoo Zimbra Desk WinRAR 390 Beta 4 Seven Transformati Vista Rainbar 43 BitComet 113 Final Microsoft Office S

TAGS magic designer | trigonometrical simulation | accurate drawing | magic designer | trigonometry | trigonometrical

SHARE THIS

HTML code for linking to this page

Go to top

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

copy 2001 - 2009 Softpedia All rights reserved Softpediatrade and the Softpediatrade logo are registered trademarks of SoftNews NET SRL

Copyright Information | Privacy Policy | Terms of Use | Update your software | Archive

httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (3 of 3)732009 73853 PM

Line Thickness 1 2 3 4

Select Color

DRAWclip fine

nice dots jagg

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line

Back

Browser Version of Magic Designer (Canvas and AJAX)

httpakatz712freehostiacomBrowser_Version_AJAX_canvashtm732009 73859 PM

F1FFCC CancelSAVE

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 button4 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 Bxy 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

httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

httpakatz712freehostiacomCommonhtml732009 73902 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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 11: Magic Designer

WINDOWS CATEGORIES

Antivirus

Authoring tools

CDDVD Tools

Compression tools

Desktop Enhancements

File managers

Internet

IPOD TOOLS

Mobile Phone Tools

Multimedia

Network Tools

Office tools

Others

PORTABLE SOFTWARE

Programming

Science CAD

Security

System

Tweak

UNIX

Windows Widgets

Home Windows Others Miscellaneous Report spyware

Magic Designer 12

View more screenshots (2)

Downloads 781 Add to download basket Tell us about an update

User Rating Rated by

Good (355) 18 user(s)

Developer

License Price

Size OS

Last Updated

Category

Andrew Katz | More programs

Freeware FREE

14 MB Windows All

July 3rd 2009 1433 GMT [view history]

C Others Miscellaneous

Read user reviews (0) Add a review Refer to a friend

Subscribe

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

httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (1 of 3)732009 73853 PM

Download Magic Designer 12 - 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 gtgt SOFTPEDIA REVIEWS gtgt WEEKLY HIGHLIGHTS

DVD ClonerSpyware Doctor1Click DVD CopyApollo DVD CopyABC Amber BlackBerProtected Music Co7-DAY TOP DOWNLOAD

Program

Avira AntiVir Personal - Free Antivirus 900403 116525Avira Antivir Virus Definition File Update July 2 2009 87963Windows Live Messenger 2009 14080640206 78828FreeZ Online TV 112 68081RemoveWGA 12 50610Y Multi Messenger 8x and 9x 48645Windows Live Messenger 8513021018 48622Nexus Radio 322 46964Microsoft Office 2007 38321

Magic Designer description

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

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 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 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 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

Whats New in This Release [ read full changelog ] middot Added PDF printing using Larrys bezier smoothing middot Used Cairo for drawing middot Added multiple designs draw capability middot Fixed Help localization middot Changed defaults to solve mirror image bug and design orientation middot Added arm adjustment due to width of physical arms middot Saving advanced fields to MGS file middot Made shift lever edit box editable Banding ellipse improvements middot There is always an ellipse middot A radio is used to edit begin or end or center middot clicking left button continues with the same ellipse middot fine tune with arrow keys cross hairs middot Use pixmap to do immediate repaints for normal painting of drawing area middot Prev Curr Next use press and hold middot Remove Refresh and dirty since all designs are kept neat at all times middot Made two windows Esc to toggle maximize middot Changed the way BasicAdvancedcircle studs work middot Apply number to Undo Redo Prev Next as well as Draw middot Added buttons size (to show if designs are off page) slow (preview draw) ellipse middot (to hide ellipse) middot Grouped drawing ap

Softpedia guarantees that Magic Designer 12 is 100 CLEAN which means it does not contain any form of malware including spyware viruses trojans and backdoors [read more gt]

httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (2 of 3)732009 73853 PM

Download Magic Designer 12 - 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 32015 36195

WEEKS BEST

Messenger Plus Li Panda Antivirus Pr Microsoft Security AVG Free Edition 8 SUPER 2009 Build 36 Trillian Astra 40 Sun Java JRE 6 Upd Ad-Aware - Anniver Windows Vista Serv EVEREST Ultimate E IntelliJ IDEA 81 Microsoft NET Fra Nero BackItUp amp Bu BitDefender Total Windows 7 Manager SUMo 26176 SLOW-PCfighter 10 Virtual DJ 601 Avi2Dvd 05 Stable Windows 7 Release Windows 7 High Res Windows 7 Regional OpenOfficeorg 31 VistaCodecs x64Com Yahoo Zimbra Desk WinRAR 390 Beta 4 Seven Transformati Vista Rainbar 43 BitComet 113 Final Microsoft Office S

TAGS magic designer | trigonometrical simulation | accurate drawing | magic designer | trigonometry | trigonometrical

SHARE THIS

HTML code for linking to this page

Go to top

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

copy 2001 - 2009 Softpedia All rights reserved Softpediatrade and the Softpediatrade logo are registered trademarks of SoftNews NET SRL

Copyright Information | Privacy Policy | Terms of Use | Update your software | Archive

httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (3 of 3)732009 73853 PM

Line Thickness 1 2 3 4

Select Color

DRAWclip fine

nice dots jagg

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line

Back

Browser Version of Magic Designer (Canvas and AJAX)

httpakatz712freehostiacomBrowser_Version_AJAX_canvashtm732009 73859 PM

F1FFCC CancelSAVE

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 button4 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 Bxy 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

httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

httpakatz712freehostiacomCommonhtml732009 73902 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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 12: Magic Designer

Download Magic Designer 12 - 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 gtgt SOFTPEDIA REVIEWS gtgt WEEKLY HIGHLIGHTS

DVD ClonerSpyware Doctor1Click DVD CopyApollo DVD CopyABC Amber BlackBerProtected Music Co7-DAY TOP DOWNLOAD

Program

Avira AntiVir Personal - Free Antivirus 900403 116525Avira Antivir Virus Definition File Update July 2 2009 87963Windows Live Messenger 2009 14080640206 78828FreeZ Online TV 112 68081RemoveWGA 12 50610Y Multi Messenger 8x and 9x 48645Windows Live Messenger 8513021018 48622Nexus Radio 322 46964Microsoft Office 2007 38321

Magic Designer description

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

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 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 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 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

Whats New in This Release [ read full changelog ] middot Added PDF printing using Larrys bezier smoothing middot Used Cairo for drawing middot Added multiple designs draw capability middot Fixed Help localization middot Changed defaults to solve mirror image bug and design orientation middot Added arm adjustment due to width of physical arms middot Saving advanced fields to MGS file middot Made shift lever edit box editable Banding ellipse improvements middot There is always an ellipse middot A radio is used to edit begin or end or center middot clicking left button continues with the same ellipse middot fine tune with arrow keys cross hairs middot Use pixmap to do immediate repaints for normal painting of drawing area middot Prev Curr Next use press and hold middot Remove Refresh and dirty since all designs are kept neat at all times middot Made two windows Esc to toggle maximize middot Changed the way BasicAdvancedcircle studs work middot Apply number to Undo Redo Prev Next as well as Draw middot Added buttons size (to show if designs are off page) slow (preview draw) ellipse middot (to hide ellipse) middot Grouped drawing ap

Softpedia guarantees that Magic Designer 12 is 100 CLEAN which means it does not contain any form of malware including spyware viruses trojans and backdoors [read more gt]

httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (2 of 3)732009 73853 PM

Download Magic Designer 12 - 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 32015 36195

WEEKS BEST

Messenger Plus Li Panda Antivirus Pr Microsoft Security AVG Free Edition 8 SUPER 2009 Build 36 Trillian Astra 40 Sun Java JRE 6 Upd Ad-Aware - Anniver Windows Vista Serv EVEREST Ultimate E IntelliJ IDEA 81 Microsoft NET Fra Nero BackItUp amp Bu BitDefender Total Windows 7 Manager SUMo 26176 SLOW-PCfighter 10 Virtual DJ 601 Avi2Dvd 05 Stable Windows 7 Release Windows 7 High Res Windows 7 Regional OpenOfficeorg 31 VistaCodecs x64Com Yahoo Zimbra Desk WinRAR 390 Beta 4 Seven Transformati Vista Rainbar 43 BitComet 113 Final Microsoft Office S

TAGS magic designer | trigonometrical simulation | accurate drawing | magic designer | trigonometry | trigonometrical

SHARE THIS

HTML code for linking to this page

Go to top

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

copy 2001 - 2009 Softpedia All rights reserved Softpediatrade and the Softpediatrade logo are registered trademarks of SoftNews NET SRL

Copyright Information | Privacy Policy | Terms of Use | Update your software | Archive

httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (3 of 3)732009 73853 PM

Line Thickness 1 2 3 4

Select Color

DRAWclip fine

nice dots jagg

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line

Back

Browser Version of Magic Designer (Canvas and AJAX)

httpakatz712freehostiacomBrowser_Version_AJAX_canvashtm732009 73859 PM

F1FFCC CancelSAVE

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 button4 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 Bxy 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

httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

httpakatz712freehostiacomCommonhtml732009 73902 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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 13: Magic Designer

Download Magic Designer 12 - 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 32015 36195

WEEKS BEST

Messenger Plus Li Panda Antivirus Pr Microsoft Security AVG Free Edition 8 SUPER 2009 Build 36 Trillian Astra 40 Sun Java JRE 6 Upd Ad-Aware - Anniver Windows Vista Serv EVEREST Ultimate E IntelliJ IDEA 81 Microsoft NET Fra Nero BackItUp amp Bu BitDefender Total Windows 7 Manager SUMo 26176 SLOW-PCfighter 10 Virtual DJ 601 Avi2Dvd 05 Stable Windows 7 Release Windows 7 High Res Windows 7 Regional OpenOfficeorg 31 VistaCodecs x64Com Yahoo Zimbra Desk WinRAR 390 Beta 4 Seven Transformati Vista Rainbar 43 BitComet 113 Final Microsoft Office S

TAGS magic designer | trigonometrical simulation | accurate drawing | magic designer | trigonometry | trigonometrical

SHARE THIS

HTML code for linking to this page

Go to top

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

copy 2001 - 2009 Softpedia All rights reserved Softpediatrade and the Softpediatrade logo are registered trademarks of SoftNews NET SRL

Copyright Information | Privacy Policy | Terms of Use | Update your software | Archive

httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtml (3 of 3)732009 73853 PM

Line Thickness 1 2 3 4

Select Color

DRAWclip fine

nice dots jagg

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line

Back

Browser Version of Magic Designer (Canvas and AJAX)

httpakatz712freehostiacomBrowser_Version_AJAX_canvashtm732009 73859 PM

F1FFCC CancelSAVE

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 button4 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 Bxy 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

httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

httpakatz712freehostiacomCommonhtml732009 73902 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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 14: Magic Designer

Line Thickness 1 2 3 4

Select Color

DRAWclip fine

nice dots jagg

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line

Back

Browser Version of Magic Designer (Canvas and AJAX)

httpakatz712freehostiacomBrowser_Version_AJAX_canvashtm732009 73859 PM

F1FFCC CancelSAVE

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 button4 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 Bxy 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

httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

httpakatz712freehostiacomCommonhtml732009 73902 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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 15: Magic Designer

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 button4 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 Bxy 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

httpakatz712freehostiacomBasichtml (1 of 4)732009 73900 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 Cxy 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

httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

httpakatz712freehostiacomCommonhtml732009 73902 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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 16: Magic Designer

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 Cxy 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

httpakatz712freehostiacomBasichtml (2 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

httpakatz712freehostiacomCommonhtml732009 73902 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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 17: Magic Designer

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

httpakatz712freehostiacomBasichtml (3 of 4)732009 73900 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

httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

httpakatz712freehostiacomCommonhtml732009 73902 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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 18: Magic Designer

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

httpakatz712freehostiacomBasichtml (4 of 4)732009 73900 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 61 to 51 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

httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

httpakatz712freehostiacomCommonhtml732009 73902 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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 19: Magic Designer

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 61 to 51 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

httpakatz712freehostiacomAdvancedhtml (1 of 3)732009 73901 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 112 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

httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

httpakatz712freehostiacomCommonhtml732009 73902 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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 20: Magic Designer

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 112 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

httpakatz712freehostiacomAdvancedhtml (2 of 3)732009 73901 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 toys 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 58 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

httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

httpakatz712freehostiacomCommonhtml732009 73902 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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 21: Magic Designer

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 toys 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 58 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

httpakatz712freehostiacomAdvancedhtml (3 of 3)732009 73901 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

httpakatz712freehostiacomCommonhtml732009 73902 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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 22: Magic Designer

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

httpakatz712freehostiacomCommonhtml732009 73902 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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 23: Magic Designer

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

httpakatz712freehostiacomEllipse_controlshtml (1 of 2)732009 73903 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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 24: Magic Designer

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

httpakatz712freehostiacomEllipse_controlshtml (2 of 2)732009 73903 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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 25: Magic Designer

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

httpakatz712freehostiacomButton_operationshtml (1 of 4)732009 73903 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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 26: Magic Designer

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 CC12 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

httpakatz712freehostiacomButton_operationshtml (2 of 4)732009 73903 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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 27: Magic Designer

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 UndoRedo 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 menus 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

httpakatz712freehostiacomButton_operationshtml (3 of 4)732009 73903 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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 28: Magic Designer

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 xy 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

httpakatz712freehostiacomButton_operationshtml (4 of 4)732009 73903 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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 29: Magic Designer

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 Bxy The pixel position of the corner the ellipse Note that it could be the any of the 4 corners

2 Exy The pixel position of the opposite to Bxy 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 00 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(dd) Designs size(dd) - the Size button report Bxy adjustments Exy adjustments Move Ellipse by center Must Use Zoom

sliders or F10F11 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

httpakatz712freehostiacomStatus_Linehtml (1 of 3)732009 73904 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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 30: Magic Designer

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 gt 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 -gt End -gt Center -gt Zoom -gt 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

httpakatz712freehostiacomStatus_Linehtml (2 of 3)732009 73904 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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 31: Magic Designer

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

httpakatz712freehostiacomStatus_Linehtml (3 of 3)732009 73904 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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 32: Magic Designer

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 Paintnet

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

httpakatz712freehostiacomNoteshtml (1 of 7)732009 73905 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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 33: Magic Designer

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 6302009 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 somethingmgs 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

httpakatz712freehostiacomNoteshtml (2 of 7)732009 73905 PM

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 34: Magic Designer

MagicDesigner - Notes

There is a general issue (resolved) with the storing of colors In Windows the (RGB) 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 Zorns 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 fileMGS 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

httpakatz712freehostiacomNoteshtml (3 of 7)732009 73905 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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 35: Magic Designer

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 Zorns 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 responseTextsplit(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)

httpakatz712freehostiacomNoteshtml (4 of 7)732009 73905 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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 36: Magic Designer

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 Zorns 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 widthlength color thickness and orientation It takes 16 bytes per DIV and I am allowing 100000 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

httpakatz712freehostiacomNoteshtml (5 of 7)732009 73905 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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 37: Magic Designer

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 Larrys 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 BasicAdvancedcircle 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

httpakatz712freehostiacomNoteshtml (6 of 7)732009 73905 PM

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 38: Magic Designer

MagicDesigner - Notes

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

httpakatz712freehostiacomNoteshtml (7 of 7)732009 73905 PM

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 39: Magic Designer

Physical Parameters of the Magic Designer

Emulator for Magic DesignerMagic 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

httpakatz712freehostiacomPhysical_parametershtm (1 of 6)732009 73906 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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 40: Magic Designer

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 (00) 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 34 inches from hole A to the place of joining of the arms

The measurement for hole R is 1 12 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 12 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 14 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 58 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 38 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

httpakatz712freehostiacomPhysical_parametershtm (2 of 6)732009 73906 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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 41: Magic Designer

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 14 inch This means that the imaginary gears diameter is 12 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 150 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 users 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 00 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

httpakatz712freehostiacomPhysical_parametershtm (3 of 6)732009 73906 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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 42: Magic Designer

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 = 05 Radius of gearL = 05 Angle of gearR = 315 Distance of pegR from center of gearR = 0375 Distance of pegL from center of gearL = 0375 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 34 inches and for B it is 5 12 inches and so on The last letter is R which is 1 12 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

httpakatz712freehostiacomPhysical_parametershtm (4 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 43: Magic Designer

Physical Parameters of the Magic Designer

calculate this is from Larry

True arm length = sqrt(516^2 + (5 34 - (X - A)14)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

httpakatz712freehostiacomPhysical_parametershtm (5 of 6)732009 73906 PM

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 44: Magic Designer

Physical Parameters of the Magic Designer

httpakatz712freehostiacomPhysical_parametershtm (6 of 6)732009 73906 PM

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 45: Magic Designer

Programming the Magic Designer application

History of the development of Magic Designer programsI 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 311 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

httpakatz712freehostiacomProgramminghtm (1 of 6)732009 73906 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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 46: Magic Designer

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 CC++ 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 24 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

httpakatz712freehostiacomProgramminghtm (2 of 6)732009 73906 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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 47: Magic Designer

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 httpforumphysorgcomindexphpact=Printampclient=printerampf=20ampt=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 (ab)+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 15 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 16 it rotates 7 times around This means that it only takes 515 (3607) degrees of rotation for the peg to return to its original angle

So to calculate the starting angle of peg for the design ((centergear)+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

httpakatz712freehostiacomProgramminghtm (3 of 6)732009 73906 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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 48: Magic Designer

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 - (centergear)(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 = begincases arctan(fracyx) amp mboxif x gt 0 mbox and y ge 0 arctan(fracyx) + 2pi amp mboxif x gt 0 mbox and y lt 0 arctan(fracyx) + pi amp mboxif x lt 0 fracpi2 amp mboxif x = 0 mbox and y gt 0 frac3pi2 amp mboxif x = 0 mbox and y lt 0 endcases 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

httpakatz712freehostiacomProgramminghtm (4 of 6)732009 73906 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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 49: Magic Designer

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 computers 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 Windows 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

httpakatz712freehostiacomProgramminghtm (5 of 6)732009 73906 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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 50: Magic Designer

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++

httpakatz712freehostiacomProgramminghtm (6 of 6)732009 73906 PM

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 51: Magic Designer

Left Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Right Arm

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

Shift Lever

Line Thickness

1 2

3 4

Line

Background

Browser Version of Magic Designer (AJAX)

httpakatz712freehostiacomBrowser_Version_AJAXhtm732009 73910 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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 52: Magic Designer

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

httpakatz712freehostiacomThirdPartyLinkshtml732009 73911 PM

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 53: Magic Designer

My Other Links

Andrew Katzs other stuff on the Web

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

In the early 1980s 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

httpakatz712freehostiacomOther_linkshtm732009 73911 PM

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 54: Magic Designer

My Favorite Sites

Andys 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

httpakatz712freehostiacomMyFavoriteSiteshtml732009 73914 PM

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 55: Magic Designer

Andrew S Katz Resume

ANDREW S KATZ

38 Park St 24B Florham Park NJ 07932

home (973)301-0448 e-mail AKatz712 gmailcom

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 HPRTE OS Assembler [various]

PROFESSIONAL EXPERIENCE

Energy For America Springfield NJ 112000 ndash 22001 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 31999 ndash 71999 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 101998 ndash 21999 NUCLEUS Product combined many sales and marketing data sources into one schema

httpakatz712freehostiacomResume14bhtml (1 of 4)732009 73914 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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 56: Magic Designer

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 11998 ndash 91998 Implement production WEB based Sales order systems for ATampT 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) 81997 ndash 101997 Develops PCL and Postscript language interpreters and drivers

Integrated cartridge fonts into the PCL interpreter

C UNIX

Apprise Software Inc Florham Park NJ (RampD location) 31996 ndash 81997 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

httpakatz712freehostiacomResume14bhtml (2 of 4)732009 73914 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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 57: Magic Designer

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

httpakatz712freehostiacomResume14bhtml (3 of 4)732009 73914 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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 58: Magic Designer

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 BS 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

httpakatz712freehostiacomResume14bhtml (4 of 4)732009 73914 PM

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 59: Magic Designer

Kens Book - Windows Live

Slide showView Thumbnails Sort by Custom EmbedOrder printsMore Options Help

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (1 of 12)732009 73936 PM

Kens Book

Windows LivetradeSign in HomeProfilePeopleMailPhotosMore SkyDriveGroupsSpaces

Family SafetyMobileDownloads

Office Live

All services

MSN

Autos

Games

Money

Movies

Music

News

Sports

Weather

AndrewbullSkyDrivebullKens Book

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 60: Magic Designer

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (2 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 61: Magic Designer

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (3 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 62: Magic Designer

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (4 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 63: Magic Designer

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (5 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 64: Magic Designer

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (6 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 65: Magic Designer

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (7 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 66: Magic Designer

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (8 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 67: Magic Designer

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (9 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 68: Magic Designer

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (10 of 12)732009 73936 PM

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 69: Magic Designer

Kens Book - Windows Live

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (11 of 12)732009 73936 PM

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 70: Magic Designer

Kens Book - Windows Live

Shared with Everyone (public) copy 2009 Microsoft

Privacy

Terms of use

Report Abuse

Code of Conduct

Account

Feedback

httpscid-fae65ed2ab7a7ae5skydrivelivecombrowseaspxKen7C4s20Book (12 of 12)732009 73936 PM

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3
Page 71: Magic Designer

Peabody Penguins - Curve-A-Graph(c)

Back when I was a kid I loved playing with Spirographcopy 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)

httpuserschariotnetau7Epbbcagcurve_a_graphhtml732009 73944 PM

  • freehostiacom
    • MagicDesigner - Overview
    • Browser Version of Magic Designer (Canvas and AJAX)
    • MagicDesigner - Basic
    • MagicDesigner - Advanced
    • MagicDesigner - Common
    • MagicDesigner - Button Operations
    • MagicDesigner - Button Operations
    • MagicDesigner - Status Line
    • MagicDesigner - Notes
    • Physical Parameters of the Magic Designer
    • Programming the Magic Designer application
    • Browser Version of Magic Designer (AJAX)
    • Third Party Links related to Magic Designer
    • My Other Links
    • My Favorite Sites
    • Andrew S Katz Resume
      • 1stingamescom
        • httpwww1stingamescomgamesdatamagicdesignerindexpdf
          • sourceforgenet
            • Complex Curved Shapes Generator Programs | Get Complex Curved Shapes Generator Programs at SourceForgenet
              • softpediacom
                • Download Magic Designer 12 - An easy-to-use program that uses trigonometry to figure out how to draw the designs of the toy with the same n - Softpedia
                  • livecom
                    • Kens Book - Windows Live
                      • userschariotnetau
                        • Peabody Penguins - Curve-A-Graph(c)
                              1. OFCACLOFGJJAJGKHKGJCBEGLNMBIKMNJ
                                1. form1
                                  1. x
                                    1. f1 soft
                                    2. f2 enter keyword
                                        1. form2
                                          1. x
                                            1. f1 [everything]
                                              1. f2
                                                  1. MLOGEONKBDEACEMAIPOHJKOMJGFDOGEK
                                                    1. form1
                                                      1. x
                                                        1. f1 Keywords
                                                          1. f2
                                                            1. form3
                                                              1. f1 lta href=httpwwwsoftpediacomgetOthersMiscellaneousMagic-Designershtmlgtltimg border=0 src=httpwwwsoftpediacomimagessoftpedia_download_smallgifgtltagt
                                                              2. f2
                                                                1. form2
                                                                  1. x
                                                                    1. f1 Search
                                                                      1. f2
                                                                          1. BGIKCKMPODBKBHIKLMANMBEEALNDFEAF
                                                                            1. form8
                                                                              1. f1
                                                                              2. f2 Off
                                                                              3. f3 Off
                                                                              4. f4
                                                                              5. x
                                                                                1. f5 on
                                                                                  1. f6
                                                                                  2. f7
                                                                                  3. f8
                                                                                  4. f9
                                                                                  5. f10
                                                                                  6. f11
                                                                                  7. f12
                                                                                  8. f13
                                                                                  9. f14
                                                                                  10. f15
                                                                                  11. f16
                                                                                  12. f17
                                                                                  13. f18
                                                                                  14. f19
                                                                                  15. f20
                                                                                  16. f21
                                                                                  17. f22
                                                                                  18. f23
                                                                                  19. f24
                                                                                  20. f25
                                                                                    1. form4
                                                                                      1. x
                                                                                        1. f1 1
                                                                                            1. form2
                                                                                              1. x
                                                                                                1. f1 C
                                                                                                    1. form3
                                                                                                      1. x
                                                                                                        1. f1 C
                                                                                                          1. KPBPAOHKCKBOPIMALNODFKLAMFJNDDJM
                                                                                                            1. form7
                                                                                                              1. x
                                                                                                                1. f1 C
                                                                                                                    1. form8
                                                                                                                      1. x
                                                                                                                        1. f1 C
                                                                                                                            1. form9
                                                                                                                              1. x
                                                                                                                                1. f1
                                                                                                                                    1. form10
                                                                                                                                      1. x
                                                                                                                                        1. f1 1
                                                                                                                                            1. form11
                                                                                                                                              1. f1
                                                                                                                                              2. f2
                                                                                                                                              3. f3
                                                                                                                                                1. form12
                                                                                                                                                  1. f1
                                                                                                                                                  2. f2
                                                                                                                                                  3. f3
                                                                                                                                                    1. form13
                                                                                                                                                      1. f1
                                                                                                                                                      2. f2
                                                                                                                                                      3. f3
                                                                                                                                                      4. f4
                                                                                                                                                      5. f5
                                                                                                                                                      6. f6
                                                                                                                                                      7. f7
                                                                                                                                                      8. x
                                                                                                                                                        1. f8 []
                                                                                                                                                          1. f9
                                                                                                                                                              1. HAJILNODKGADHLMMKOOOFCOKNJIKHONI
                                                                                                                                                                1. form1
                                                                                                                                                                  1. x
                                                                                                                                                                    1. f1 Search the web
                                                                                                                                                                    2. f2 FOLDER
                                                                                                                                                                      1. f3
                                                                                                                                                                        1. form2
                                                                                                                                                                          1. x
                                                                                                                                                                            1. f1 wEPDwUHNjg2Nzc4OGRk
                                                                                                                                                                            2. f2
                                                                                                                                                                            3. f3