home *** CD-ROM | disk | FTP | other *** search
Wrap
1 rem ************************ 2 rem * normale axonometrie * 3 rem * * 4 rem * (c) april 1984 * 5 rem * steger peter * 6 rem * bahnhofstrasse 20b * 7 rem * 6632 ehrwald/triol * 8 rem * tel : a-05673/2656 * 9 rem ************************ 10 : print"[147]" : poke 53280,0 : poke 53281,0 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]" 25 print"dieses programm stellt ebenflaechig" 30 print"[145]begrenzte koerper,nach eingabe bzw einle" 35 print"[145]sen der eckpunkte und der verbindungsvor" 40 print"[145]schrift in normaler axonometrie dar." 45 print"hierbei kann das achsenkreuz beliebig" 50 print"[145]gewaehlt werden." 55 print"allerdings bleibt der ursprung in der" 60 print"bildschirmmitte." 65 print"nach dem zeichnen der figur erscheint" 70 print"[145]in der linken oberen ecke <fertig> und" 75 print"man kommt dann mit [150]<f1> oder <return> in" 76 print"[145]das hauptmenue." 80 print"die erstellten koerper koennen dann" 85 print"auch auf disk abgespeichert werden." 90 print""tab(11)"< taste druecken >"; 95 poke 198,0 : wait 198,1 100 clr:dim pt(100,3),zp(100),pa(100,3) 105 print"[147]soll der koerper von disk eingelesen" 110 print"werden <j/n> ?" 115 get a$ : if a$ = "j" then 1000 120 if a$ <>"n" then 115 125 print"[147]bitte um die eingabe der einzelnen" 126 print"eckpunkte mit drei koordinaten (x,y,z)" 127 print"bei x='ende' wird die eingabe beendet." 128 print"bei x='\' kann der vorige punkt nochein" 129 print"mal eingegeben werden." 130 print"("a")"; : input px$,py,pz : px=val(px$) : if px$="ende" then 200 135 if px$="\" then a=a-1 : goto 130 140 pt(a,1) = px 145 pt(a,2) = py 150 pt(a,3) = pz 155 pa(a,1) = pt(a,1) 160 pa(a,2) = pt(a,2) 165 pa(a,3) = pt(a,3) 170 a=a+1 : goto 130 200 rem 201 rem verbindungsordnung 202 rem 205 ep = a-1 : print"[147]in welcher reihenfolge sollen welche" 210 print"punkte verbunden werden ? 215 [153]"'ende' beendet die eingabe wieder." 220 [153]"'\' laesst die korrektur der vorigen " 225 [153]"eingabe zu." 230 [133] "ausgangspunkt";a 235 zp(0)[178]a 240 b[178]1 : [153]"" : [143] eingabeschleife 245 [153]"von ("a") nach : "; : [133] a$ : [139] a$[178] "ende" [167] 270 250 [139] a$ [178] "\" [167] b[178]b[171]1 : a[178]a1 : [137] 245 255 a1[178]a : a [178] [197](a$) : 260 zp(b) [178] a 265 b[178]b[170]1 : [137] 245 270 sp[178]b[171]1 300 [143] 301 [143] koordinatensystem festlegen 302 [143] 305 [153]"loadbestimmen sie nun das achsenkreuz." 310 [153]"geben sie die winkel zwischen :" 315 [153]"" 320 [153] [163]19)"then" 325 [153] [163]19)"then" 330 [153] " z- und y-achse ";[163]19)"(NULL)(NULL)";[163]24)"z- und x-achse " 335 [153] [163]18)"(NULL) (NULL)"[163]24)"ein." 345 [153] [163]17)"(NULL) (NULL)" 350 [143] 355 [133] " alpha = 120cmdcmdcmdcmdcmd";al:[153][163]25);:[133]"on beta = 120cmdcmdcmdcmdcmd";bt 360 al[178]al[172][255][173]180 : bt[178]bt[172][255][173]180 400 [143] 401 [143] zeichenrD{$7f}ine 402 [143] 405 D 5,0 410 a[178]zp(0) 415 xa [178] 160 [171] [191](al)[172]pt(a,2) [170] [191](bt)[172]pt(a,1) 420 ya [178] 100 [171] pt(a,3) [171] [190](al)[172]pt(a,2) [171] [190](bt)[172]pt(a,1) 425 [129] b [178] 1 [164] sp 430 a[178]zp(b) 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 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 441 [139] ys[179]0 [167]ys[178]0 445 D xa,ya,xs,ys,1 450 xa[178]xs : ya[178]ys 455 [130] 460 [139] ko [178] 1 [167] 1410 480 d$[178]"<fertig>" 485 DO 5,5,d$,1,0,7 490 [161] a$ : [139] a$ [179][177] [199](133) [175] a$ [179][177] [199](13) [167] 490 500 [143] 501 [143] hauptmenue 502 [143] 505 DG : [153]"load"[163]10) "hauptmenue :" 510 [153] [163]10)"valvalvalvalvalvalvalvalvalvalvalval" 515 [153]"(1) = neues achsenkreuz 520 print"(2) = drehung der figur um oo 525 [153]"(3) = ausgangszustand herstellen" 530 [153]"(4) = verschieben der figur" 535 [153]"(5) = koordinatenachsen einzeichnen" 545 [153]"(6) = abspeichern der koerperdaten" 550 [153]"(7) = hardcopy auf drucker 555 print"(8) = neuer start" 560 print"(9) = zur grafik zurueck" 580 print tab(10) "(0) = ende" 585 get a$ : if a$ <"0" or a$ >"9" or a$="" then 585 590 on val(a$) goto 300,600,800,1300,1400,1100,1500,100,1220 595 stop 600 rem 601 rem drehung der figur um oo 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]" 615 print"bitte waehlen sie aus :" 620 print"(1) = drehung um die z-achse. 625 [153]"(2) = drehung um die y-achse. 630 print"(3) = drehung um die x-achse." 635 get a :if a < 1 or a >3 then 635 636 z=5+2*a : D z,3,29,1 640 print tab(7)"bitte den drehwinkel :";:input de : de=de*(NULL)/180 645 on a goto 650,700,750 650 rem 651 rem um die z-achse 655 for x=0 to ep 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) 665 eo = eo+de : if eo >= 2*(NULL) then eo = eo-2*(NULL) 670 r=sqr(pt(x,1)^2+pt(x,2)^2) 675 pt(x,1)=sin(eo)*r 680 pt(x,2)=cos(eo)*r 685 next 690 goto 790 : rem return 700 rem 701 rem um die y-achse 705 for x=0 to ep 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) 715 eo=eo+de : if eo >= 2*(NULL) then eo=eo-2*(NULL) 720 r = sqr(pt(x,1)^2+pt(x,3)^2) 725 pt(x,1)=cos(eo)*r 730 pt(x,3)=sin(eo)*r 735 next 740 goto 790 : rem return 750 rem 751 rem um die x-achse 755 for x=0 to ep 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) 765 eo=eo+de : if eo>= 2*(NULL) then eo = eo-2*(NULL) 766 r = sqr (pt(x,2)^2+pt(x,3)^2) 770 pt(x,3)=cos(eo)*r 775 pt(x,2)=sin(eo)*r 780 next 790 DP 2 : goto 400 : rem return 800 rem ausganagszustand 801 rem 810 for x = 0 to ep 820 for y = 1 to 3 830 pt(x,y)=pa(x,y) 840 nexty,x 850 goto 400 999 rem 1000 rem daten vom der DR holen 1001 rem 1010 open 1,8,15 : rem fehlerkanal 1015 print"bitte dateinamen :"; : input ns$ : n$=ns$ 1020 ns$=ns$+",s,r" 1025 open 2,8,2,ns$ 1030 gosub 1250 1032 if f1 = 62 then close 2 : goto 1015 1035 print"einlesen der daten von :";n$ 1040 input#2,ep 1045 input#2,sp 1050 for x = 0 to ep 1055 for y = 1 to 3 1060 input#2,pt(x,y) : pa(x,y)=pt(x,y) 1065 next y 1070 gosub 1250 1075 next x 1080 for x = 0 to sp 1085 input#2,zp(x) 1090 next x 1095 gosub 1250 1097 close 2 : close 1 : goto 300 1100 DG : rem koerperdaten auf DR 1101 rem 1110 print "[147]koerperdaten auf disk:" 1120 print"[197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197]" 1130 print"bitte dateinamen :"; : input ns$ 1140 open 1,8,15 : rem fehlerkanal 1150 ns$=ns$+",s,w" 1160 open 2,8,2,ns$ 1162 print#2,ep : print#2,sp 1165 for x = 0 to ep : rem punkte 1170 for y = 1 to 3 1180 print#2,pt(x,y) 1185 next y 1190 gosub 1250 1195 next x 1200 for x = 0 to sp : rem verbindungsvorschrift 1205 print#2,zp(x) 1210 next 1215 gosub 1250 1220 close 2 : close 1 : DP 2 : goto 490 1250 rem 1251 rem fehlerkanal 1252 rem 1255 input#1,f1,f1$,f2,f3 : if f1 = 0 then return : rem kein fehler 1260 print "[150]fehler auf der disk !" 1265 print""f1,f1$" "f3" "f4 1270 print"bitte mit <return> bestaetigen,oder mit" 1275 print"<space> das programm abbrechen !" 1280 getan$ : if an$ = chr$(13) then return 1285 if an$ <> chr$(32) then 1280 1290 close 1 : stop 1300 rem 1301 rem verschieben der figur 1302 rem 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]" 1310 print"bitte um den verschiebevektor in der" 1315 print"form 'x,y,z' !" 1320 input"vektor :";px,py,pz 1322 print"bitte etwas geduld ." 1325 for a=0 to ep 1335 pt(a,1) = pt(a,1) + px 1340 pt(a,2) = pt(a,2) + py 1345 pt(a,3) = pt(a,3) + pz 1350 next a 1360 goto400 1400 rem 1401 rem koordinatenachsen 1402 rem 1405 if ko=1 then ty=0 : ko=0 : goto 1415 1410 ko=1 : ty = 1 1415 xs=160-sin(al)*95 : x1=160-sin(al)*105 1420 ys=100-cos(al)*95 : y1=100-cos(al)*105 1425 D x1,y1,25,ty,1 1430 D 160,100,xs,ys,ty : rem y-achse 1435 xs=160+sin(bt)*95 : x1=160+sin(bt)*102 1440 ys=100-cos(bt)*95 : y1=100-cos(bt)*105 1445 D 160,100,xs,ys,ty : rem x-achse 1450 D x1,y1,24,ty,1 1455 D 160,100,160,10,ty : rem z=achse 1460 D 155,0,26,ty,1 1470 DP 2 : goto 480 1500 rem 1501 rem hardDW 1502 rem 1505 DO 5,5,d$,0,0,7 1510 d$="<hardcopy>" 1515 DO 5,5,d$,1,0,8 1520 DP 2 1525 DW 1530 DO 5,5,d$,0,0,8 1535 goto 480