?"3D Model 1.0-Visualizador de imagens 3D ?"Copyright 1999 (c) WendelSoft ? ?"Teclas para girar imagem : ?" W ?" A S D INPUT "Arquivo (.3DM):",arq$ IF arq$="" THEN SYSTEM TYPE TriD Flag AS INTEGER X AS SINGLE Y AS SINGLE Z AS SINGLE END TYPE DIM Ponto AS TriD SCREEN 2 WINDOW(-80,-50)-(80,50) xInc=0 yInc=0 Fct=ATN(1)/45 OPEN arq$+".3DM" FOR RANDOM AS #1 LEN=14 Max%=LOF(1)\14 DO CLS LOCATE 1,1:?USING "xInc:### yInc:###";xInc;yInc; alfa=xInc*Fct beta=yInc*Fct sa=SIN(alfa):sb=SIN(beta):ca=COS(alfa):cb=COS(beta) FOR i%=1 TO Max% LOCATE 1,40:?USING "###.###%";i%/Max%*100; GET #1,i%,Ponto px=Ponto.X py=Ponto.Y pz=Ponto.Z nx=px*cb+(py*-sa+pz*ca)*sb ny=py*ca+pz*sa nz=px*-sb+(py*-sa+pz*ca)*cb nx=nx*.99^-nz ny=ny*.99^-nz IF Ponto.Flag THEN PSET(nx,ny) ELSE LINE-(nx,ny) END IF k$=INKEY$:IF k$<>"" THEN 1 NEXT DO k$=INKEY$ 1 SELECT CASE k$ CASE "W","w":xInc=xInc+5:IF xInc=360 THEN xInc=0 CASE "S","s":xInc=xInc-5:IF xInc=-5 THEN xInc=355 CASE "D","d":yInc=yInc+5:IF yInc=360 THEN yInc=0 CASE "A","a":yInc=yInc-5:IF yInc=-5 THEN yInc=355 CASE "Z","z LOCATE 3,1:INPUT "x1:",x1 INPUT "y1:",y1 INPUT "Larg:",larg INPUT "Alt :",alt WINDOW(x1,y1)-(x1+larg,y1+alt) CASE "R","r WINDOW(-80,-50)-(80,50) CASE " SCREEN 0 CLOSE #1 SYSTEM CASE " CASE ELSE:BEEP END SELECT LOOP WHILE k$=" LOOP