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

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