home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / basic / library / gwbasic / dosspiro / epicycs.bas next >
Encoding:
BASIC Source File  |  1994-05-25  |  880 b   |  28 lines

  1. 100 KEY OFF
  2. 110 WD = 639: HT = 349
  3. 120 X0 = WD / 2: Y0 = HT / 2
  4. 130 PI = 3.1415926#
  5. 160 SCREEN 2, 1: WIDTH 80: CLS
  6. 165 PRINT "Draw an epicycloid"
  7. 170 INPUT "Ratio of fixed to rolling circle ( 0 = quit )"; R
  8. 180 IF R = 0 THEN SCREEN 0, 0, 0: END
  9. 190 PRINT "Enter the pen position w.r.t. a circle of radius 1."
  10. 200 PRINT "<1 is inside, =1 is on circle, >1 is outside"
  11. 210 INPUT "Pen position (<=0 to quit)"; H
  12. 220 IF H <= 0 THEN END
  13. 230 A = .5 * R * HT / (R + H + 1)
  14. 240 B = A / R
  15. 250 H = H * B
  16. 280 SCREEN 9, 1: CLS
  17. 290 LINE (X0, 0)-(X0, HT), 2
  18. 300 LINE (0, Y0)-(WD, Y0), 2
  19. 310 CIRCLE (X0, Y0), A, 3
  20. 320 CIRCLE (X0 + A + B, Y0), B, 3
  21. 350 ANG = 0
  22. 360 ANG = ANG + 2 * PI / 600
  23. 370 X = X0 + (A + B) * COS(ANG) - H * COS(ANG * (A + B) / B)
  24. 380 Y = Y0 - (A + B) * SIN(ANG) + H * SIN(ANG * (A + B) / B)
  25. 390 PSET (X, Y), 1
  26. 420 IF INKEY$ <> "" THEN 160 ELSE 360
  27.  
  28.