# Creator: Pathetic Writer 3.1.0-alpha. No Warranty. .sh 20 .sf 98 .sty0 Default,98,20,0 .sty1 Header 1,53,30,0 .sty2 Header 2,52,20,0 .sty3 Header 3,51,20,0 .sty4 Header 4,50,20,0 .sty5 Header 5,49,20,0 .sty6 Header 6,48,20,0 .sty7 Address,106,20,7 .sty8 Ordered List,114,20,8 .sty9 Unordered List,114,20,9 .sty10 Preformatted,2,20,10 .sty11 User 1,98,20,11 .sty12 User 2,98,20,12 .sty13 User 3,98,20,13 .sty14 User 4,98,20,14 .sty15 Embed,98,20,0 # /home/ulric/siag/pw/examples/egon.pw # 70 lines # .rh 1 30 .st 1 1 .st 6 9 .st 7 9 .st 8 9 .st 9 9 .st 17 2 .st 25 2 .st 42 10 .st 43 10 .st 44 10 .st 45 10 .st 46 10 .st 47 10 .st 48 10 .st 49 10 .st 50 10 .st 51 10 .st 52 10 .st 53 10 .st 63 10 # Line 1 .ft 1 size 240 bold 1 end 1 1 1 "Egon Animator # Line 3 .ft 0 font Times end 3 1 0 "The latest addition to the Siag family is a program to create animated sequences. # Line 4 4 1 0 "Examples of where such a program can be useful is: # Line 6 .ft 13 font Times bold 1 end 6 1 13 "Presentation graphics # Line 7 7 1 13 "Computerized toons # Line 8 8 1 13 "Demonstrations # Line 9 9 1 13 "Animated GIF creation # Line 11 11 1 0 "The name of this program is Egon Animator. The look and feel of the program is very # Line 12 12 1 0 "similar to that of Siag and Pathetic Writer; however not all of their powerful features like # Line 13 13 1 0 "embedding are yet implemented. But the core of the program is the same, in fact the three # Line 14 14 1 0 "programs share much of the same source. The multiple interpreter support is present # Line 15 15 1 0 "(with only SIOD implemented properly, but the hooks are there for Guile and Tcl). # Line 17 .ft 2 size 180 bold 1 end 17 1 2 "Why an animation program? # Line 19 19 1 0 "Well, why not? When I first started working on my spreadsheet Siag, the long term goal # Line 20 20 1 0 "was to create a full, free office package. Now that Siag and the word processor Pathetic # Line 21 21 1 0 "Writer are operational, if not finished, it seemed like a small but natural step to add a # Line 22 22 1 0 "simple program to create presentation graphics. As usual, I had an old program lying # Line 23 23 1 0 "around which could be botched into a new role. # Line 25 25 1 2 "So, what is it like? # Line 27 27 1 0 "Egon has an editing interface with three lists for the objects, the ticks and the properties. # Line 28 28 1 0 "Objects include rectangles, lines, pixmaps and so on. Every object has a list of one or # Line 29 29 1 0 "more ticks, which are "milestones" telling where the object should be at a particular time, # Line 30 30 1 0 "what shape, colour and so on. When the animation is played, Egon automatically # Line 31 31 1 0 "interpolates intermediate positions between the ticks so that a smooth linear movement # Line 32 32 1 0 "can be specified with only the endpoints. # Line 34 34 1 0 "There will also be a Visual Basic-style interface where objects can be chosen from a # Line 35 35 1 0 "palette and placed on the animation window using drag-and-drop, but that is not yet # Line 36 36 1 0 "implemented. # Line 38 38 1 0 "The animations are stored as Scheme scripts in human-readable form so that they can be # Line 39 39 1 0 "edited manually. It is also easy to write scripts without using the editing interface at all. # Line 40 40 1 0 "For example, here is a script to create a ticker-tape: # Line 42 .ft 10 font Courier end 42 1 10 "(define (ticker-tape width height duration text) # Line 43 43 1 10 " (ani-object ANI_LINE) # Line 44 44 1 10 " (ani-properties ANI_X 0 ANI_Y (- height 21) ANI_WIDTH width) # Line 45 45 1 10 " (ani-object ANI_FILLRECT) # Line 46 46 1 10 " (ani-properties ANI_X 0 ANI_Y (- height 20)) # Line 47 47 1 10 " (ani-properties ANI_WIDTH width ANI_HEIGHT 20) # Line 48 48 1 10 " (ani-properties ANI_COLOR WHITE) # Line 49 49 1 10 " (ani-object ANI_STRING) # Line 50 50 1 10 " (ani-properties ANI_X width ANI_Y (- height 5)) # Line 51 51 1 10 " (ani-properties ANI_TEXT text) # Line 52 52 1 10 " (ani-time duration) # Line 53 53 1 10 " (ani-properties ANI_X 0)) # Line 55 55 1 0 "Interpretation: At the bottom of the window, create a horizontal black line and a white # Line 56 56 1 0 "rectangle. Using the rectangle as background, make the message move from left to right # Line 57 57 1 0 "throughout the presentation. # Line 59 59 1 0 "Once defined, this function can be called from any number of animations with different # Line 60 60 1 0 "parameters. For example, assuming we have a demo with a window size of 600x500 and a # Line 61 61 1 0 "playing time of 2 seconds: # Line 63 63 1 10 "(ticker-tape 600 500 2000 "Egon Animation 2.23. No Warranty") # Line 65 65 1 0 "Simple, eh? # Line 67 67 1 0 "Simple scripts can also be merged into more complex animations, so the above definition # Line 68 68 1 0 "can be stored in a separate file ticker.scm and used in other animations. This makes it # Line 69 69 1 0 "possible to create a library of reusable animation snippets. # End of file /home/ulric/siag/pw/examples/egon.pw