PROGRAM EPI C C Program to draw Epicycloids and Hypocycloids in Core Graphics. C C B. Z. Lederman Bankers Trust Co. C INCLUDE '[001005]CGL.FTN/NOLIST' REAL X(100), Y(100), INC INTEGER COLOR(10) INTEGER*2 SAVCOL(24), MOVCOL(24) DATA INC / 6.2831853E-2/ DATA COLOR / 1, 2, 3, 4, 5, 6, 7, 4, 5, 6/ DATA MOVCOL / 0, 0, 0, 0, 4, 6, 0, 7, 0, 7, 0, 0, 1 7, 7, 0, 0, 7, 6, 7, 0, 6, 7, 7, 6 / C WRITE (5, 10) 10 FORMAT('$ Enter Radii A, B: ') READ (5, 20) A, B 20 FORMAT( 2F14.7) C CALL CGL (GIC) ! Initialize CALL CGL (GICM, SAVCOL) ! Save preset colors CALL CGL (GSCM, MOVCOL) ! First set of colors CALL CGL (GNF) ! New Frame CALL CGL (GSW, 0., 959., 0., 599.) ! Set window CALL CGL (GSO, 0) ! Set origin to bottom left CALL CGL (GMA2, 0., 0.) ! Move to origin CALL CGL (GRA2, 959., 599.) ! Draw box around window C W = A + B ! calculate the path of Z = W / B ! a spot on the circumference ROT = 0 ! of a small circle rotating U = W - B + 400. ! around a large circle. V = 290. C DO 200 J = 1, 10 ! plot in 10 segments. I = COLOR(J) CALL CGL (GSWI, I) ! Set color DO 100 I = 1, 100 X(I) = (W * COS(ROT)) - (B * COS(Z * ROT)) + 400. ! coordinates Y(I) = (W * SIN(ROT)) - (B * SIN(Z * ROT)) + 290. ! of spot. 100 ROT = INC + ROT CALL CGL (GMA2, X(1), Y(1)) ! Move to start 200 CALL CGL (GPLA2, X, Y, 100) ! Draw lines, connected C CALL CGL (GCW, 5.) ! Wait CALL CGL (GNF) ! New Frame CALL CGL (GSCM, SAVCOL) ! Put original colors back CALL CGL (GTC) ! Terminate C CALL EXIT C END