home *** CD-ROM | disk | FTP | other *** search
- 100 KEY OFF
- 110 WD = 640: HT = 350
- 120 X0 = WD / 2: Y0 = HT / 2
- 130 PI = 3.1415926#
- 160 SCREEN 2, 1: WIDTH 80: CLS
- 170 PRINT "Draw a hypocycloid"
- 180 INPUT "Ratio of fixed to rolling circle ( >= 1 )"; R
- 190 IF R < 1 THEN END
- 200 PRINT "Enter the pen position w.r.t. a circle of radius 1."
- 210 PRINT "<1 is inside, =1 is on circle, >1 is outside"
- 220 INPUT "Pen position (-1 to quit)"; H
- 230 IF H < 0 THEN SCREEN 0, 0, 0: END
- 240 IF H <= 1 THEN A = .5 * HT: GOTO 260
- 250 A = .5 * R * HT / (R + H - 1)
- 260 B = A / R
- 270 H = H * B
- 300 SCREEN 9, 1: CLS
- 310 LINE (X0, 0)-(X0, HT), 2
- 320 LINE (0, Y0)-(WD, Y0), 2
- 330 CIRCLE (X0, Y0), A, 3
- 340 CIRCLE (X0 + A - B, Y0), B, 3
- 370 ANG = 0
- 380 ANG = ANG + 2 * PI / 500
- 390 X = X0 + (A - B) * COS(ANG) + H * COS(ANG * (A - B) / B)
- 400 Y = Y0 - (A - B) * SIN(ANG) + H * SIN(ANG * (A - B) / B)
- 410 PSET (X, Y)
- 440 IF INKEY$ <> "" THEN 160 ELSE 380
- 530 GOTO 170
-
-