ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

104 lines
2.7 KiB

  1. 10 REM MODEL A COMET ORBIT
  2. 11 F$="&HAAAA": REM FINE DOTS
  3. 12 C$="&H1010": REM COARSE DOTS
  4. 13 DR=3.14159265/180: K=.0172021
  5. 14 FC=1.575: LB=10: SD=360/365.25
  6. 15 SC=.82: REM ADJ FOR PRINTER
  7. 16 INPUT "Eccentricity ";EC
  8. 17 IF EC>.99 THEN EC=1
  9. 18 INPUT "q ";QC: REM PERI DIST.
  10. 19 INPUT "w ";W: REM ARG. PERI.
  11. 20 INPUT "Node ";OM:
  12. 21 INPUT "(D)irect or (R)etro";Q$
  13. 22 IF Q$="R" THEN W=360-W
  14. 23 L=W+180:IF L>360 THEN L=L-360
  15. 24 INPUT "Day increment";ID
  16. 25 INPUT "Scale (mm/a.u.)";MM
  17. 26 AU=MM*FC: REM 1 A.U. IN MM
  18. 27 AR=266*SD: OM=AR+OM:
  19. 28 IF OM>360 THEN OM=OM-360:
  20. 29 CLS: SCREEN 1: KEY OFF
  21. 30 REM --- MODEL THE COMET ---
  22. 31 IF EC<1 THEN FF=(1+EC)/(1-EC)
  23. 32 W0=3*K/(QC*SQR(2*QC))
  24. 33 Q=QC*AU: REM Q IN MM
  25. 34 X1=LB+Q: Y1=100: REM SUN LOC
  26. 35 CIRCLE (X1,Y1),2
  27. 36 F=0: GOSUB 77: REM PERI LINE
  28. 37 LINE (X1,Y1)-(X3,Y3)
  29. 38 IF QC>.1 THEN CIRCLE (X3,Y3),2
  30. 39 FOR F=1 TO 359
  31. 40 IF EC=1 AND F=180 THEN 42
  32. 41 GOSUB 77: PSET (X3,Y3)
  33. 42 NEXT F
  34. 43 F=-W: GOSUB 77
  35. 44 LINE (X1,Y1)-(X3,Y3),,,VAL(C$)
  36. 45 F=-L: GOSUB 77
  37. 46 LINE (X1,Y1)-(X3,Y3),,,VAL(F$)
  38. 47 FOR I=1 TO 5
  39. 48 T=I*ID: IF EC=1 THEN GOSUB 92
  40. 49 IF EC<1 THEN GOSUB 84
  41. 50 GOSUB 77: CIRCLE (X3,Y3),2
  42. 51 F=-F:GOSUB 77:CIRCLE (X3,Y3),2
  43. 52 NEXT I
  44. 53 PRINT "Comet": INPUT Q$
  45. 54 REM --- MODEL THE EARTH ---
  46. 55 DIM T(12):REM START OF MONTHS
  47. 56 DATA 0,31,59,90,120,151
  48. 57 DATA 181,212,243,273,304,334
  49. 58 FOR I=1 TO 12 : READ T(I)
  50. 59 NEXT I
  51. 60 EC=0: Q=AU: X1=LB+Q: Y1=100
  52. 61 CLS: CIRCLE (X1,Y1),2
  53. 62 FOR I=1 TO 12
  54. 63 F=T(I)*SD: GOSUB 77:
  55. 64 LINE (X1,Y1)-(X3,Y3),,,VAL(F$)
  56. 65 CIRCLE (X3,Y3),1
  57. 66 F=(T(I)+10)*SD: GOSUB 77
  58. 67 CIRCLE (X3,Y3),1
  59. 68 F=(T(I)+20)*SD: GOSUB 77
  60. 69 CIRCLE (X3,Y3),1
  61. 70 NEXT I
  62. 71 F=AR: GOSUB 77: REM ARIES
  63. 72 LINE (X1,Y1)-(X3,Y3),,,VAL(C$)
  64. 73 F=OM: GOSUB 77: REM ASC NODE
  65. 74 LINE (X1,Y1)-(X3,Y3)
  66. 75 PRINT "Earth": INPUT Q$
  67. 76 END
  68. 77 REM FIND POINT ALONG ORBIT
  69. 78 R=Q*(1+EC)/(1+EC*COS(F*DR))
  70. 79 X=R*COS(F*DR): Y=R*SIN(F*DR)
  71. 80 X3=X1-X: Y3=Y1+SC*Y: N=32000
  72. 81 IF SQR(X3*X3+Y3*Y3)<N THEN 83
  73. 82 X3=X3/10: Y3=Y3/10: GOTO 81
  74. 83 RETURN
  75. 84 REM ELLIPSE
  76. 85 M=T*K/(QC/(1-EC))^1.5: E=M
  77. 86 DD=1-EC*COS(E)
  78. 87 E1=E+(M+EC*SIN(E)-E)/DD
  79. 88 IF ABS(E1-E)<1/10000 THEN 90
  80. 89 E=E1: GOTO 86
  81. 90 F=2*ATN(SQR(FF)*TAN(E1/2))/DR
  82. 91 RETURN
  83. 92 REM PARABOLA
  84. 93 W1=W0*T: S=0
  85. 94 S=(2*S*S*S+W1)/(3*(S*S+1))
  86. 95 DE=S*S*S+3*S-W1
  87. 96 IF ABS(DE)>1/10000 THEN 94
  88. 97 F=2*ATN(S)/DR
  89. 98 RETURN
  90. 99 REM
  91. 100 REM Written by R. B. Minton,
  92. 110 REM this program for IBM PCs
  93. 120 REM with CGA graphics prints
  94. 130 REM paper outlines of the
  95. 140 REM orbits of the Earth and
  96. 150 REM a comet, which can then
  97. 160 REM be cut out and folded to
  98. 170 REM make a 3-dimensional
  99. 180 REM model that helps you
  100. 190 REM visualize the orbit in
  101. 200 REM space. Fully explained
  102. 210 REM in Sky & Telescope for
  103. 220 REM April, 1990, page 424.