home *** CD-ROM | disk | FTP | other *** search
/ AMIGA PD 1 / AMIGA-PD-1.iso / Programme_zum_Heft / Programmieren / Kurztests / ACE / Prgs / Gfx / shuttle.b < prev    next >
Text File  |  1994-09-12  |  4KB  |  136 lines

  1.  
  2. ' Written by an unknown Author
  3. ' Changed a bit by M.Zielinski@amtrash.comlink.de
  4. '           and by David Benn
  5.  
  6.  WINDOW 1, "Shuttle", (0,0)-(631,186), 0
  7.  X=0:Y=0:Z=0:X3=0:Y3=0:Z3=0:AM=0:BM=0:CM=0:DM=0
  8.  EM=0:FM=0:GM=0:HM=0:IM=0:D=0:P=0:B=0:H=0:U=0:U1=0:V1=0:V=0
  9.  DIM VV(300,3),EE(300)
  10.  COLOR 1, 2: CLS
  11.  READ NV
  12.  FOR P=1 TO NV
  13.     READ VV(P,1)
  14.     READ VV(P,2)
  15.     READ VV(P,3)
  16.     VV(P,1) = .12 * VV(P,1)
  17.     VV(P,2) = .12 * VV(P,2)
  18.     VV(P,3) = .12 * VV(P,3)
  19.  NEXT P
  20.  READ NE
  21.  FOR E=1 TO NE
  22.     READ EE(E)
  23.  NEXT E
  24.  D=120
  25.  
  26. Anfang:
  27.  CLS : PRINT "Enter three angles:"
  28.  INPUT "x: ",P0
  29.  INPUT "y: ",P1
  30.  INPUT "z: ",P2
  31.  CLS : pi = 3.1416
  32.  P= (2*pi) * P0 / 255 - pi
  33.  B= (2*pi) * P2 / 255
  34.  H= (2*pi) * P1 / 255
  35.  GOSUB 390
  36.  XV = -D * CP * SH: REM ---SEE SUB.---
  37.  YV = -D * CP * CH
  38.  ZV = -D * SP
  39.  ' --- PROJECT POINTS---
  40.  FOR E=1 TO NE
  41.     X = VV( ABS( EE ( E ) ), 1 )
  42.     Y = VV( ABS( EE ( E ) ), 2 )
  43.     Z = VV( ABS( EE ( E ) ), 3 )
  44.     GOSUB 520
  45.     IF EE(E)>0 THEN LINE( U1*2+75,V1+20 )-( U*2+75,V+20 )
  46.     U1 = U: V1 = V
  47.  NEXT E
  48.  LOCATE 1,1:PRINT "Hit 'C' to continue or 'Q' to quit."
  49.  k$="":WHILE k$<>"C" and k$<>"Q":k$=UCASE$(INKEY$):SLEEP:WEND
  50.  IF k$="Q" THEN goto ende
  51. GOTO Anfang
  52.  
  53. 390:
  54.  CH = COS(H): SH = SIN(H)
  55.  CP = COS(P): SP = SIN(P)
  56.  CB = COS(B): SB = SIN(B)
  57.  AM = CB * CH - SH * SP * SB
  58.  BM = -CB * SH - SP * CH * SB
  59.  CM = CP * SB
  60.  DM = SH * CP
  61.  EM = CP * CH
  62.  FM = SP
  63.  GM = -CH * SB - SH * SP * CB
  64.  HM = SH * SB - SP * CH * CB
  65.  IM = CP * CB
  66. RETURN
  67.  
  68. 520:
  69.  X = X - XV
  70.  Y = Y - YV
  71.  Z = Z - ZV
  72.  X3 = AM * X + BM * Y + CM * Z
  73.  Y3 = DM * X + EM * Y + FM * Z
  74.  Z3 = GM * X + HM * Y + IM * Z
  75.  U = 135 + 13.5 * D * X3 / Y3
  76.  V = 80 - 11.5 * D * Z3 / Y3
  77. RETURN
  78.  
  79. DATA 124
  80. DATA 0,-2.2,46,1.5,-2.6,46,2.2,-4.6,46,1.7,-6.5,46,0,-6.7,46
  81. DATA -1.7,-6.5,46,-2.2,-4.6,46,-1.5,-2.6,46
  82. DATA 0,-.8,43,2.8,-1.5,43,4,-4.5,43,3,-7.2,43,0,-8,43,-3,-7.2,43
  83. DATA -4,-4.5,43,-2.8,-1.5,43
  84. DATA 0,1.7,38,4.6,0,38,5.8,-4.4,38,4,-8.2,38,0,-9,38,-4,-8.2,38
  85. DATA -5.8,-4.4,38,-4.6,0,38
  86. DATA 0,4,32.5,4.5,1,32.5,5.8,-4.6,32.5,4,-9,32.5,0,-9.5,32.5,-4,-9,32.5
  87. DATA -5.8,-4.6,32.5,-4.5,1,32.5
  88. DATA 0,8,26.3,3.5,7,26.3,7.8,2,26.3,8,-7,26.3,0,-9.8,26.3,-8,-7,26.3
  89. DATA -7.8,2,26.3,-3.5,7,26.3
  90. DATA 0,8,21.5,3.8,7.5,21.5,8,3,21.5,8,-8,21.5,0,-9.8,21.5,-8,-8,21.5
  91. DATA -8,3,21.5,-3.8,7.5,21.5
  92. DATA 0,8,14,4.7,7,14,8,4,14,8,-8.7,14,0,-10,14,-8,-8.7,14,-8,4,14
  93. DATA -4.7,7,14
  94. DATA 0,8,4,4.7,7,4,8,4,4,8,-8.7,4,0,-10,4,-8,-8.7,4,-8,4,4
  95. DATA -4.7,7,4
  96. DATA 0,8,-12,4.7,7,-12,8,4,-12,8,-8.7,-12,0,-10,-12,-8,-8.7,-12,-8,4,-12
  97. DATA -4.7,7,-12
  98. DATA 0,8,-27.3,4.7,7,-27.3,8,4,-27.3,8,-8.7,-27.3,0,-10,-27.3,-8,-8.7,-27.3
  99. DATA -8,4,-27.3,-4.7,7,-27.3
  100. DATA 0,8,-35.6,4.7,7,-35.6,8,4,-35.6,8,-8.7,-35.6,0,-10,-35.6,-8,-8.7,-35.6
  101. DATA -8,4,-35.6,-4.7,7,-35.6
  102. DATA 0,9,-43,2,8.5,-43,8.8,1.5,-43,9,-10,-43,0,-10.8,-43,-9,-10,-43
  103. DATA -8.8,1.5,-43,-2,8.5,-43
  104. DATA 0,9.5,-48,2,9.3,-48,9.2,1.5,-48,10,-10,-48,0,-10.2,-48,-10,-10,-48
  105. DATA -9.2,1.5,-48,-2,9.3,-48
  106. DATA 8.7,-8.7,21,15,-8.7,-16,35,-10,-36,35,-10,-40
  107. DATA -8.7,-8.7,21,-15,-8.7,-16,-35,-10,-36,-35,-10,-40
  108. DATA 0,13,-37,0,33,-60,0,33,-69,0,14,-60
  109. DATA 6,11,-43,6,11,-48,11,5,-43,11,5,-48,-6,11,-43,-6,11,-48,-11,5,-43
  110. DATA -11,5,-48
  111. DATA 259
  112. DATA -1,2,3,4,5,6,7,8,1,-9,10,11,12,13,14,15,16,9,-17,18,19,20,21,22,23,24,17
  113. DATA -25,26,27,28,29,30,31,32,25,-33,34,35,36,37,38,39,40,33
  114. DATA -41,42,43,44,45,46,47,48,41,-49,50,51,52,53,54,55,56,49
  115. DATA -57,58,59,60,61,62,63,64,57,-65,66,67,68,69,70,71,72,65
  116. DATA -73,74,75,76,77,78,79,80,73,-81,82,83,84,85,86,87,88,81
  117. DATA -89,90,91,92,93,94,95,96,89,-97,98,99,100,101,102,103,104,97
  118. DATA -1,9,17,25,33,41,49,57,65,73,81,89,97
  119. DATA -2,10,18,26,34,42,50,58,66,74,82,90,98
  120. DATA -3,11,19,27,35,43,51,59,67,75,83,91,99
  121. DATA -4,12,20,28,36,44,52,60,68,76,84,92,100
  122. DATA -5,13,21,29,37,45,53,61,69,77,85,93,101
  123. DATA -6,14,22,30,38,46,54,62,70,78,86,94,102
  124. DATA -7,15,23,31,39,47,55,63,71,79,87,95,103
  125. DATA -8,16,24,32,40,48,56,64,72,80,88,96,104
  126. DATA -44,105,106,107,108,92
  127. DATA -46,109,110,111,112,94
  128. DATA -81,113,114,115,116,89
  129. DATA -82,117,118,-83,119,120
  130. DATA -87,121,122,-88,123,124
  131. DATA -117,119,-121,123,-118,120,-122,124
  132.  
  133. ENDE:
  134.   WINDOW CLOSE 1
  135.   END
  136.