import java.applet.Applet; import java.awt.event.*; import java.awt.*; import java.awt.geom.*; class TextIntro { /**This is a documentation file. It is read by the file reader.**/ public TextIntro() {} public String getText(int k) { if(k==0) return(text0()); if(k==1) return(text1()); if(k==2) return(text2()); if(k==3) return(text3()); if(k==4) return(text4()); if(k==5) return(text5()); if(k==6) return(text6()); if(k==7) return(text7()); if(k==8) return(text8()); if(k==9) return(text9()); if(k==10) return(text10()); if(k==11) return(text11()); if(k==12) return(text12()); if(k==13) return(text13()); return(null); } public static String text0() { String S="The purpose of this program is to illustrate the mathematics in my paper 'Outer Billiards and the Pinwheel Map'. The explanatory text comes in 5 units, of which this is the first. This unit gives a general mathematical introduction. The second unit gives an applet tutorial. The remaining units make specific mathematical points. Use the arrow keys at the top right of this window to advance the text."; return(S); } public static String text1() { String S="Outer billiards is a dynamical system defined in terms of a convex shape in the plane. The pinwheel map is an auxilliary dynamical system that can be computed much more efficiently. My main result gives a precise correspondence between the dynamics of the two systems. In brief, the pinwheel map turns out to be an information-preservation acceleration of outer billiards. As a consequence, one can use the pinwheel map to understand the outer billiards map. "; return(S); } public static String text2() { String S="ACKNOWLEDGEMENT: This work is supported by NSF grant DMS-0072607."; return(S); } public static String text3() { String S="EXERCISES: As you read along this text, I'll give you little exercises to do. Their purpose is to familiarize you with the workings of the program and/or to make certain mathematical points. You will gain a greater appreciation of the program if you actually do the exercises."; return(S); } public static String text4() { String S="EXERCISE: Practice selecting points in the big window. If you have a 3 button mouse, then click button-2 over the point you want to select. If you don't have a 3-button mouse (or if it doesn't work) then move the mouse to the point you want to select, and use the 'x' key on the keyboard. Don't worry now about the consequences of your point selection."; return(S); } public static String text5() { String S="OUTER BILLIARDS: Outer billiards is a dynamical system based on a convex shape P in the plane. In our case, P is the polygon in the center of the big screen. Let p0 be a point not in P. We define p1 so that the line segment joining p0 to p1 is tangent to P at its midpoint, and a person walking from p0 to p1 sees P on the right. The map p0-->p1 is the outer billiards map. It is defined except when p0 lies in a line extending an edge of P."; return(S); } public static String text6() { String S="EXERCISE: Press the 'outer billiards' button on the 'preset' control panel at bottom right. Now select a point p0 outside the central polygon in the big window. The thin grey segments join p0 to p1 and p1 to p2. The thick white segment joins p0 to p2. We are mainly interested in the square of the outer billiards map, which we call f. We have f(p0)=p2.."; return(S); } public static String text7() { String S="The square map f is a piecewise translation. The red-outlined regions you see are the maximal regions of constancy. Within each of these regions, f is a translation. The white arrow you see is the translation vector. If you keep clicking within the same region, you will see that the white vectors remain the same. The vector changes when you change regions."; return(S); } public static String text8() { String S="STRIP MAPS: Our main result gives a factorization of f into strip maps. A strip map is based on a pair (S,V), where S is an infinite strip in the plane, and V is a vector that spans S: V can be placed so that its head lies on one boundary of S and its tail lies on the other. Given a point x0, we construct x1 as follows. If x0 is in S we set x1=x0. Otherwise, we set x1=x0+V or x1=x0-V, depending on which of these points is closer to S. The strip map is x0-->x1."; return(S); } public static String text9() { String S="EXERCISE: Press the 'strip map' button on the 'preset' control panel. If you now select points in the big window, you will see the action of the strip map relative to the red strip S. The vector V is twice either of the vectors that point from one end of the red segment to the other. Either choice gives the same map. Using the 'which' strip arrows, you can select a new strip and repeat the exercise."; return(S); } public static String text10() { String S="SPECIAL MAPS: The strips that arose in the previous exercise are specially related to the polygon P shown in the big window. Each such strip is obtained as follows: Edge 1 of the strip extends a side of P. Edge 2 is such that one vertex of P lies on the centerline of the strip and the remaining points of P lie closer to the Edge 1. Though it is not strictly necessary, we assume that P has no parallel sides. This assumption makes the centerline vertex unique."; return(S); } public static String text11() { String S="To each special strip we associate the vector V=2W, where W points from one endpoint of the relevant edge to the centerline vertex. Of the two endpoints, we choose the one that is further clockwise. So, we get N special pairs (S,V), where S is a special strip and V is the associated vector. Here N is the number of sides of P. These pairs are ordered cyclically, according to the slopes of the strips. We call the associated maps the special strip maps."; return(S); } public static String text12() { String S="THEOREM: Our main result says that the square outer billiards factors as a certain composition of special strip maps. To see a demo, press the 'theorem' button, and then press the 'go button on the 'animation' control panel. The red polygon is a pre-selected region of constancy. The blue polygon is the image of the red one under the square outer billiards map. The animation shows how the map red-->blue is the composition of strip maps."; return(S); } public static String text13() { String S="EXERCISE: Play around with the demo a bit. Try selecting points in other regions and repeating the demo. Try changing the speed of the animation. This will give you a feel of how the factorization works."; return(S); } }