home *** CD-ROM | disk | FTP | other *** search
/ Hacker Chronicles 2 / HACKER2.BIN / 781.QTHLIB.2 < prev    next >
Text File  |  1985-09-28  |  2KB  |  46 lines

  1. .HE Figure 7.2
  2. 5000 REM SUBROUTINE TO PERFORM CALCULATIONS
  3. 500╡ RE═ BaseΣ oε ß routinσ useΣ b∙ WA3VQ─ anΣ N3NN¼á7│ Magazinσ DE├ 1978
  4. 5010 P8 = 3.14159 / 180 / REM DEG -> RAD CONV FACTOR
  5. 5020 L = L2 - L1
  6. 5030 IF L < -180 THEN L = L + 360
  7. 5040 IF L >  180 THEN L = L - 360
  8. 5050 IF L < 0 THEN X = 0 ELSE X = 1
  9. 5060 REM CONVERT L AND B TO RADIANS
  10. 5070 A1 = A * P8
  11. 5080 B1 = B * P8
  12. 5090 L  = L * P8
  13. 5100 REM COMPUTE DISTANCE ANGLE
  14. 5110 D = COS(L)*COS(A1)*COS(B1) + SIN(A1)*SIN(B1)
  15. 5120 IF D > .99998 THEN D = 0 ELSE  D = ATN(SQRT(1-D*D)/D)
  16. 5130 D1 = D / P8
  17. 5140 REM   ENSURE POSITIVE VALUE
  18. 5150 IF D1 < 0 THEN D1 = D1 + 180
  19. 5160 REM COMPUTE DISTANCE
  20. 5170 D1 = INT(D1 * 60 * 1.1512 + .5)
  21. 5180 D2 =  INT (D1*1.6093 + .5)
  22. 5190 REM COMPUTE BEARING ANGLE
  23. 5200 IF D = 0 THEN R = 0 ELSE R = COS(B1) * SIN(L) / SIN(D)
  24. 5210 IF R = 0 THEN R1 = 0 ELSE  R1 = ATN(R/SQRT(1 - R * R))
  25. 5220 REM CONVERT TO DEGREES
  26. 5230 R2 = INT ( ( R1 / P8 ) + 0.5 )
  27. 5240 REM PUT IN RIGHT QUADRANT
  28. 5250 IF ABS(R) > .99998 THEN 5360
  29. 5260 IF ABS(R) < .00174 THEN 5380
  30. 5270 B2 = ( B + 0.1) * P8
  31. 5280 R3 = COS(L) * COS(A1) * COS (B2) + SIN(B2) * SIN(A1)
  32. 5290 IF R3 >.999998 THEN R4 = 0 ELSE R4 = ATN(SQRT(1 - R3 * R3) / R3)
  33. 5300 IF R4 = 0 THEN R6 = 90 * P8 ELSE R6 = COS(B2) * SIN(L) / SIN(R4)
  34. 5310 IF X=1 THEN 5340
  35. 5320 IF ABS(R6) > ABS(R) THEN R2=180+ABS(R2) ELSE R2=360-ABS(R2)
  36. 5330 GOTO 5420
  37. 5340 IF ABS(R6) < ABS(R) THEN R2 = ABS(R2) ELSE R2 = 180 - ABS(R2)
  38. 5350 GOTO 5420
  39. 5360 IF X=1 THEN R2 = 90 ELSE R2 = 270
  40. 5370 GOTO 5420
  41. 5380 IF ABS(L) > 178 THEN 5410
  42. 5390 IF B < A THEN R2 = 180 ELSE R2 = 0
  43. 5400 GOTO 5420
  44. 5410 IF B > A THEN R2 = 180 ELSE R2 = 0
  45. 5420 RETURN
  46.