home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 84xx / 8412.d64 / simons-axo (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  7KB  |  257 lines

  1. 1 REM ************************
  2. 2 REM * NORMALE  AXONOMETRIE *
  3. 3 REM *                      *
  4. 4 REM *    (C) APRIL 1984    *
  5. 5 REM *     STEGER PETER     *
  6. 6 REM *  BAHNHOFSTRASSE 20B  *
  7. 7 REM *  6632 EHRWALD/TRIOL  *
  8. 8 REM *  TEL : A-05673/2656  *
  9. 9 REM ************************
  10. 10 : PRINT"[147]" : POKE 53280,0 : POKE 53281,0
  11. 20 PRINTTAB(10)"[150]NORMALE AXONOMETRIE :" : PRINT TAB(10)"[197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197]"
  12. 25 PRINT"DIESES PROGRAMM STELLT  EBENFLAECHIG"
  13. 30 PRINT"[145]BEGRENZTE KOERPER,NACH EINGABE BZW EINLE"
  14. 35 PRINT"[145]SEN DER ECKPUNKTE UND DER VERBINDUNGSVOR"
  15. 40 PRINT"[145]SCHRIFT IN NORMALER AXONOMETRIE DAR."
  16. 45 PRINT"HIERBEI KANN DAS ACHSENKREUZ BELIEBIG"
  17. 50 PRINT"[145]GEWAEHLT WERDEN."
  18. 55 PRINT"ALLERDINGS  BLEIBT DER URSPRUNG IN  DER"
  19. 60 PRINT"BILDSCHIRMMITTE."
  20. 65 PRINT"NACH DEM ZEICHNEN DER FIGUR ERSCHEINT"
  21. 70 PRINT"[145]IN DER LINKEN OBEREN ECKE <FERTIG> UND"
  22. 75 PRINT"MAN KOMMT DANN MIT [150]<F1> ODER <RETURN> IN"
  23. 76 PRINT"[145]DAS HAUPTMENUE."
  24. 80 PRINT"DIE ERSTELLTEN  KOERPER KOENNEN DANN"
  25. 85 PRINT"AUCH AUF DISK ABGESPEICHERT WERDEN."
  26. 90 PRINT""TAB(11)"< TASTE DRUECKEN >";
  27. 95 POKE 198,0 : WAIT 198,1
  28. 100 CLR:DIM PT(100,3),ZP(100),PA(100,3)
  29. 105 PRINT"[147]SOLL DER KOERPER VON DISK EINGELESEN"
  30. 110 PRINT"WERDEN <J/N> ?"
  31. 115 GET A$ : IF A$ = "J" THEN 1000
  32. 120 IF A$ <>"N" THEN 115
  33. 125 PRINT"[147]BITTE UM DIE EINGABE DER EINZELNEN"
  34. 126 PRINT"ECKPUNKTE MIT DREI KOORDINATEN (X,Y,Z)"
  35. 127 PRINT"BEI X='ENDE' WIRD DIE EINGABE BEENDET."
  36. 128 PRINT"BEI X='\' KANN DER VORIGE PUNKT NOCHEIN"
  37. 129 PRINT"MAL EINGEGEBEN WERDEN."
  38. 130 PRINT"("A")"; : INPUT PX$,PY,PZ : PX=VAL(PX$) : IF PX$="ENDE" THEN 200
  39. 135 IF PX$="\" THEN A=A-1 : GOTO 130
  40. 140 PT(A,1) = PX
  41. 145 PT(A,2) = PY
  42. 150 PT(A,3) = PZ
  43. 155 PA(A,1) = PT(A,1)
  44. 160 PA(A,2) = PT(A,2)
  45. 165 PA(A,3) = PT(A,3)
  46. 170 A=A+1 : GOTO 130
  47. 200 REM
  48. 201 REM VERBINDUNGSORDNUNG
  49. 202 REM
  50. 205 EP = A-1 : PRINT"[147]IN WELCHER REIHENFOLGE SOLLEN WELCHE"
  51. 210 PRINT"PUNKTE VERBUNDEN WERDEN ?
  52. 215 [153]"'ENDE' BEENDET DIE EINGABE WIEDER."
  53. 220 [153]"'\' LAESST DIE KORREKTUR DER VORIGEN "
  54. 225 [153]"EINGABE ZU."
  55. 230 [133] "AUSGANGSPUNKT";A
  56. 235 ZP(0)[178]A
  57. 240 B[178]1 : [153]"" : [143] EINGABESCHLEIFE
  58. 245 [153]"VON ("A") NACH : "; : [133] A$ : [139] A$[178] "ENDE" [167] 270
  59. 250 [139] A$ [178] "\" [167] B[178]B[171]1 : A[178]A1 : [137] 245
  60. 255 A1[178]A : A [178] [197](A$) :
  61. 260 ZP(B) [178] A
  62. 265 B[178]B[170]1 : [137] 245
  63. 270 SP[178]B[171]1
  64. 300 [143]
  65. 301 [143] KOORDINATENSYSTEM FESTLEGEN
  66. 302 [143]
  67. 305 [153]"LOADBESTIMMEN SIE NUN DAS ACHSENKREUZ."
  68. 310 [153]"GEBEN SIE DIE WINKEL ZWISCHEN :"
  69. 315 [153]""
  70. 320 [153] [163]19)"THEN"
  71. 325 [153] [163]19)"THEN"
  72. 330 [153] " Z- UND Y-ACHSE ";[163]19)"(null)(null)";[163]24)"Z- UND X-ACHSE "
  73. 335 [153] [163]18)"(null)  (null)"[163]24)"EIN."
  74. 345 [153] [163]17)"(null)    (null)"
  75. 350 [143]
  76. 355 [133] " ALPHA =  120CMDCMDCMDCMDCMD";AL:[153][163]25);:[133]"ON  BETA = 120CMDCMDCMDCMDCMD";BT
  77. 360 AL[178]AL[172][255][173]180 : BT[178]BT[172][255][173]180
  78. 400 [143]
  79. 401 [143] ZEICHENRdINE
  80. 402 [143]
  81. 405 d 5,0
  82. 410 A[178]ZP(0)
  83. 415 XA [178] 160 [171] [191](AL)[172]PT(A,2) [170] [191](BT)[172]PT(A,1)
  84. 420 YA [178] 100 [171] PT(A,3) [171] [190](AL)[172]PT(A,2) [171] [190](BT)[172]PT(A,1)
  85. 425 [129] B [178] 1 [164] SP
  86. 430 A[178]ZP(B)
  87. 435 XS[178]160[171][191](AL)[172]PT(A,2)[170][191](BT)[172]PT(A,1):[139] XS[177]319 [167] XS[178]319:[139]XS[179]0[167]XS[178]0
  88. 440 YS[178]100[171]PT(A,3)[171][190](AL)[172]PT(A,2)[171][190](BT)[172]PT(A,1):[139]YS[177]199 [167] YS[178]199
  89. 441 [139] YS[179]0 [167]YS[178]0
  90. 445 d XA,YA,XS,YS,1
  91. 450 XA[178]XS : YA[178]YS
  92. 455 [130]
  93. 460 [139] KO [178] 1 [167] 1410
  94. 480 D$[178]"<FERTIG>"
  95. 485 do 5,5,D$,1,0,7
  96. 490 [161] A$ : [139] A$ [179][177] [199](133) [175] A$ [179][177] [199](13) [167] 490
  97. 500 [143]
  98. 501 [143] HAUPTMENUE
  99. 502 [143]
  100. 505 dg : [153]"LOAD"[163]10) "HAUPTMENUE :"
  101. 510 [153] [163]10)"VALVALVALVALVALVALVALVALVALVALVALVAL"
  102. 515 [153]"(1) = NEUES ACHSENKREUZ
  103. 520 PRINT"(2) = DREHUNG DER FIGUR UM OO
  104. 525 [153]"(3) = AUSGANGSZUSTAND HERSTELLEN"
  105. 530 [153]"(4) = VERSCHIEBEN DER FIGUR"
  106. 535 [153]"(5) = KOORDINATENACHSEN EINZEICHNEN"
  107. 545 [153]"(6) = ABSPEICHERN DER KOERPERDATEN"
  108. 550 [153]"(7) = HARDCOPY AUF DRUCKER
  109. 555 PRINT"(8) = NEUER START"
  110. 560 PRINT"(9) = ZUR GRAFIK ZURUECK"
  111. 580 PRINT TAB(10) "(0) = ENDE"
  112. 585 GET A$ : IF A$ <"0" OR A$ >"9" OR A$="" THEN 585
  113. 590 ON VAL(A$) GOTO 300,600,800,1300,1400,1100,1500,100,1220
  114. 595 STOP
  115. 600 REM
  116. 601 REM DREHUNG DER FIGUR UM OO
  117. 610 PRINT"[147]DREHUNG DER FIGUR UM OO :":PRINT"[197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197]"
  118. 615 PRINT"BITTE WAEHLEN SIE AUS :"
  119. 620 PRINT"(1) = DREHUNG UM DIE Z-ACHSE.
  120. 625 [153]"(2) = DREHUNG UM DIE Y-ACHSE.
  121. 630 PRINT"(3) = DREHUNG UM DIE X-ACHSE."
  122. 635 GET A :IF A < 1 OR A >3 THEN 635
  123. 636 Z=5+2*A : d Z,3,29,1
  124. 640 PRINT TAB(7)"BITTE DEN DREHWINKEL :";:INPUT DE : DE=DE*(null)/180
  125. 645 ON A GOTO 650,700,750
  126. 650 REM
  127. 651 REM UM DIE Z-ACHSE
  128. 655 FOR X=0 TO EP
  129. 660 EO=ATN(PT(X,1)/(PT(X,2)-1E-32))-(null)*(PT(X,2)<=0)-2*(null)*(PT(X,1)<0 ANDPT(X,2)>0)
  130. 665 EO = EO+DE : IF EO >= 2*(null) THEN EO = EO-2*(null)
  131. 670 R=SQR(PT(X,1)^2+PT(X,2)^2)
  132. 675 PT(X,1)=SIN(EO)*R
  133. 680 PT(X,2)=COS(EO)*R
  134. 685 NEXT
  135. 690 GOTO 790 : REM RETURN
  136. 700 REM
  137. 701 REM UM DIE Y-ACHSE
  138. 705 FOR X=0 TO EP
  139. 710 EO=ATN(PT(X,3)/(PT(X,1)-1E-32))-(null)*(PT(X,1)<=0)-2*(null)*(PT(X,3)<0ANDPT(X,1)>0)
  140. 715 EO=EO+DE : IF EO >= 2*(null) THEN EO=EO-2*(null)
  141. 720 R = SQR(PT(X,1)^2+PT(X,3)^2)
  142. 725 PT(X,1)=COS(EO)*R
  143. 730 PT(X,3)=SIN(EO)*R
  144. 735 NEXT
  145. 740 GOTO 790 : REM RETURN
  146. 750 REM
  147. 751 REM UM DIE X-ACHSE
  148. 755 FOR X=0 TO EP
  149. 760 EO=ATN(PT(X,2)/(PT(X,3)-1E-32))-(null)*(PT(X,3)<=0)-2*(null)*(PT(X,2)<0ANDPT(X,3)>0)
  150. 765 EO=EO+DE : IF EO>= 2*(null) THEN EO = EO-2*(null)
  151. 766 R = SQR (PT(X,2)^2+PT(X,3)^2)
  152. 770 PT(X,3)=COS(EO)*R
  153. 775 PT(X,2)=SIN(EO)*R
  154. 780 NEXT
  155. 790 dp 2 : GOTO 400 : REM RETURN
  156. 800 REM AUSGANAGSZUSTAND
  157. 801 REM
  158. 810 FOR X = 0 TO EP
  159. 820 FOR Y = 1 TO 3
  160. 830 PT(X,Y)=PA(X,Y)
  161. 840 NEXTY,X
  162. 850 GOTO 400
  163. 999 REM
  164. 1000 REM DATEN VOM DER dr HOLEN
  165. 1001 REM
  166. 1010 OPEN 1,8,15 : REM FEHLERKANAL
  167. 1015 PRINT"BITTE DATEINAMEN :"; : INPUT NS$ : N$=NS$
  168. 1020 NS$=NS$+",S,R"
  169. 1025 OPEN 2,8,2,NS$
  170. 1030 GOSUB 1250
  171. 1032 IF F1 = 62 THEN CLOSE 2 : GOTO 1015
  172. 1035 PRINT"EINLESEN DER DATEN VON :";N$
  173. 1040 INPUT#2,EP
  174. 1045 INPUT#2,SP
  175. 1050 FOR X = 0 TO EP
  176. 1055 FOR Y = 1 TO 3
  177. 1060 INPUT#2,PT(X,Y)  : PA(X,Y)=PT(X,Y)
  178. 1065 NEXT Y
  179. 1070 GOSUB 1250
  180. 1075 NEXT X
  181. 1080 FOR X = 0 TO SP
  182. 1085 INPUT#2,ZP(X)
  183. 1090 NEXT X
  184. 1095 GOSUB 1250
  185. 1097 CLOSE 2 : CLOSE 1 : GOTO 300
  186. 1100 dg : REM KOERPERDATEN AUF dr
  187. 1101 REM
  188. 1110 PRINT "[147]KOERPERDATEN AUF DISK:"
  189. 1120 PRINT"[197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197]"
  190. 1130 PRINT"BITTE DATEINAMEN :"; : INPUT NS$
  191. 1140 OPEN 1,8,15 : REM FEHLERKANAL
  192. 1150 NS$=NS$+",S,W"
  193. 1160 OPEN 2,8,2,NS$
  194. 1162 PRINT#2,EP : PRINT#2,SP
  195. 1165 FOR X = 0 TO EP : REM PUNKTE
  196. 1170 FOR Y = 1 TO 3
  197. 1180 PRINT#2,PT(X,Y)
  198. 1185 NEXT Y
  199. 1190 GOSUB 1250
  200. 1195 NEXT X
  201. 1200 FOR X = 0 TO SP : REM VERBINDUNGSVORSCHRIFT
  202. 1205 PRINT#2,ZP(X)
  203. 1210 NEXT
  204. 1215 GOSUB 1250
  205. 1220 CLOSE 2 : CLOSE 1 : dp 2 : GOTO 490
  206. 1250 REM
  207. 1251 REM FEHLERKANAL
  208. 1252 REM
  209. 1255 INPUT#1,F1,F1$,F2,F3 : IF F1 = 0 THEN RETURN : REM KEIN FEHLER
  210. 1260 PRINT "[150]FEHLER AUF DER DISK !"
  211. 1265 PRINT""F1,F1$"  "F3"  "F4
  212. 1270 PRINT"BITTE MIT <RETURN> BESTAETIGEN,ODER MIT"
  213. 1275 PRINT"<SPACE> DAS PROGRAMM ABBRECHEN !"
  214. 1280 GETAN$ : IF AN$ = CHR$(13) THEN RETURN
  215. 1285 IF AN$ <> CHR$(32) THEN 1280
  216. 1290 CLOSE 1 : STOP
  217. 1300 REM
  218. 1301 REM VERSCHIEBEN DER FIGUR
  219. 1302 REM
  220. 1305 PRINT"[147]VERSCHIEBEN DER FIGUR :":PRINT"[197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197]"
  221. 1310 PRINT"BITTE UM DEN VERSCHIEBEVEKTOR IN DER"
  222. 1315 PRINT"FORM 'X,Y,Z' !"
  223. 1320 INPUT"VEKTOR :";PX,PY,PZ
  224. 1322 PRINT"BITTE ETWAS GEDULD ."
  225. 1325 FOR A=0 TO EP
  226. 1335 PT(A,1) = PT(A,1) + PX
  227. 1340 PT(A,2) = PT(A,2) + PY
  228. 1345 PT(A,3) = PT(A,3) + PZ
  229. 1350 NEXT A
  230. 1360 GOTO400
  231. 1400 REM
  232. 1401 REM KOORDINATENACHSEN
  233. 1402 REM
  234. 1405 IF KO=1 THEN TY=0 : KO=0 : GOTO 1415
  235. 1410 KO=1 : TY = 1
  236. 1415 XS=160-SIN(AL)*95 : X1=160-SIN(AL)*105
  237. 1420 YS=100-COS(AL)*95 : Y1=100-COS(AL)*105
  238. 1425 d  X1,Y1,25,TY,1
  239. 1430 d 160,100,XS,YS,TY : REM Y-ACHSE
  240. 1435 XS=160+SIN(BT)*95 : X1=160+SIN(BT)*102
  241. 1440 YS=100-COS(BT)*95 : Y1=100-COS(BT)*105
  242. 1445 d 160,100,XS,YS,TY : REM X-ACHSE
  243. 1450 d  X1,Y1,24,TY,1
  244. 1455 d 160,100,160,10,TY : REM Z=ACHSE
  245. 1460 d  155,0,26,TY,1
  246. 1470 dp 2 : GOTO 480
  247. 1500 REM
  248. 1501 REM HARDdw
  249. 1502 REM
  250. 1505 do 5,5,D$,0,0,7
  251. 1510 D$="<HARDCOPY>"
  252. 1515 do 5,5,D$,1,0,8
  253. 1520 dp 2
  254. 1525 dw
  255. 1530 do 5,5,D$,0,0,8
  256. 1535 GOTO 480
  257.