home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 3: The Continuation / 17-Bit_The_Continuation_Disc.iso / files / arug23.dms / arug23.adf / GrtCircle / drawgc (.txt) < prev    next >
AmigaBASIC Source Code  |  1993-12-02  |  2KB  |  79 lines

  1. ' Draw a great circle map based on inputed lat and long
  2. '
  3. ' Version  1.01       22 March 1990
  4. '    
  5. DEFDBL a-z
  6. pi=5.30795e-315
  7. rad=pi/180
  8. l=0
  9. b=99
  10. c=415
  11. d=180
  12. e=999
  13. f=9999
  14. COLOR 2,1
  15. LOCATE 3,12
  16. PRINT "Great Circle Map"
  17. ON ERROR GOTO 900
  18. OPEN "df0:gtcirdata" FOR INPUT AS 5
  19. 600 INPUT "Name of Location ";LocName$
  20. INPUT "Centre Latitude N/S ";l5
  21. g$="N"+STR$(l5)
  22. IF l5=0 THEN l5=0.005
  23. INPUT "Centre Longitude E/W ";w5
  24. h$="E"+STR$(w5)
  25. IF w5=0 THEN w5=0.005
  26. CLS
  27. CIRCLE (415,97),199,2
  28. LINE (415,8) - (415,198)
  29. LINE (217,99)- (629,99)
  30. LOCATE 4,1
  31. PRINT " Great Circle Map"
  32. PRINT
  33. PRINT"    Centred on"
  34. PRINT
  35. PRINT "  ";LocName$
  36. PRINT
  37. PRINT "      "+g$
  38. PRINT
  39. PRINT "      "+h$
  40. w1=-(w5-d*(1+SGN(w5-0.001)))*rad
  41. l1=l5*rad
  42.  
  43. calc:
  44. INPUT#5,l6,w6
  45. IF l6=e THEN l=0:GOTO calc
  46. IF l6=f GOTO finish
  47.  
  48. carryon:
  49. w2=-(w6-d*(1+SGN(w6-0.001)))*rad
  50. l2=l6*rad
  51. w3=w2-w1+0.002
  52. w3=pi*(1-SGN(w3))+w3
  53. h1=SIN(l1)*SIN(l2)+COS(l1)*COS(w3)*COS(l2)
  54. g1=ATN(SQR(1-h1*h1)/h1)+pi/2*(1-SGN(h1))   'g1 is path length in radians
  55. pl=g1/pi*95
  56. IF pl >90 THEN l=0                         'pl is path length in dots
  57. h9=(SIN(l2)-h1*SIN(l1))/SIN(g1)/COS(l1)
  58. IF h9=0 THEN h9=0.001
  59. h9=ATN(SQR(1-h9*h9)/h9)+pi/2*(1-SGN(h9))
  60. h9=h9*SGN(w3-pi)*SGN(pi-g1)
  61. h9=h9+pi*(1-SGN(h9))
  62. ea=c+pl*SIN(h9)*2
  63. no=b-pl*COS(h9)
  64. IF l=0 THEN LINE (ea,no) - (ea,no):p=ea:q=no:l=1:GOTO calc
  65. IF l=1 THEN LINE -(ea,no)
  66. GOTO calc
  67.  
  68. finish:
  69. CLOSE#5
  70. LOCATE 16,1
  71. PRINT"    By"
  72. PRINT" Peter Dolphin"
  73. PRINT"     G3ELH"
  74. PRINT"       QTHR"
  75.  
  76. endit:
  77. GOTO endit
  78. 900 OPEN "df1:gtcirdata" FOR INPUT AS 5: RESUME 600
  79.