C A SEQUENCE ON THREE DIMENSIONAL DRAWING J.K.COOK C DIMENSION EP(3,10) COMMON/OIL/IVECT(200) COMMON/BULK/I3STRT,I3END,OBJ(6,50) COMMON/PAINT/I2STRT,I2END,PIC(4,50) COMMON/EYCEP/E(3),C(3),U(3) COMMON/LIMITS/XMIN,XMAX,YMIN,YMAX COMMON/SAVE/PTS(6,50) CALL CLEAR(.TRUE.) READ(5,500)((OBJ(I,J),I=1,6),J=1,49) 500 FORMAT(6F5.1) DO 111 J=1,49 DO 111 I=1,6 111 PTS(I,J)=OBJ(I,J) XMIN=-10. XMAX=10. YMIN=-10. YMAX=10. E(1)=0. E(2)=0. E(3)=9999. C(1)=0. C(2)=0. C(3)=0. U(1)=0. U(2)=10. U(3)=0. DIST=9999. C C SHRINK C CALL DISPLY(1,1,IVECT,1,1) CALL DISPLY(1,50,IVECT,1,1) CALL DISPLY(1,51,IVECT,1,1) DX=1./12. DY=DX C C C C DO 99 I=1,24 XMIN=XMIN-DX XMAX=XMAX+DX YMIN=YMIN-DY YMAX=YMAX+DY I3STRT=1 I3END=18 I2STRT=1 I2END=18 CALL ROTER CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,1) CALL DISPLY(6,1,IVECT,1,LAST) I3STRT=42 I3END=49 I2STRT=42 I2END=49 CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,50) CALL DISPLY(6,50,IVECT,1,LAST) 99 CALL PULSE(IDO,IF) C PUT IN AXES C C C ANG=0. RD=3.14159/180. DTH=2. DO 101 J=1,432,2 ANG=ANG+DTH E(1)=DIST*SIN(ANG*RD) E(3)=DIST*COS(ANG*RD) CALL ROTER I3STRT=1 I3END=18 I2STRT=1 I2END=18 CALL MAPPER(DIST) I2STRT=1 I2END=18 CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,1) CALL DISPLY(6,1,IVECT,1,LAST) I3STRT=42 I3END=49 I2STRT=42 I2END=49 CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,50) CALL DISPLY(6,50,IVECT,1,LAST) IF((ANG.EQ.90.).OR.(ANG.EQ.360.))GO TO 102 GO TO 101 C C PAUSE AT 90. AND 360. C 102 DO 103 I=1,72 103 CALL PULSE(IDO,IF) 101 CALL PULSE(IDO,IF) DO 301 J=1,2501,100 E(2)=FLOAT(J) CALL ROTER I3STRT=1 I3END=18 I2STRT=1 I2END=18 CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,1) CALL DISPLY(6,1,IVECT,1,LAST) I3STRT=42 I3END=49 I2STRT=42 I2STRT=49 CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,50) CALL DISPLY(6,50,IVECT,1,LAST) 301 CALL PULSE(IDO,IF) C C TURN OFF RECT AND FRAME C CALL DISPLY(5,50) C C PAUSE C DO 303 I=1,72 303 CALL PULSE(IDO,IF) C C DRAW Z AXIS C 2222 PAUSE ITAG=100 DO 1 I=1,11 TIM=1. IF(I.EQ.1)TIM=2. IF(I.GT.6)TIM=.6 ITAG=ITAG+1 CALL DRASLO(I+18,TIM,ITAG,DIST) DO 2 J=1,12 2 CALL PULSE(IDO,IF) 1 CONTINUE DO 3 I=1,48 3 CALL PULSE(IDO,IF) I3STRT=1 I3END=29 I2STRT=1 I2END=29 CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,1) CALL DISPLY(6,1,IVECT,1,LAST) C C NOW DRAW BOX C CALL DISPLY(5,50) CALL DISPLY(5,51) DO 999 I=1,72 999 CALL PULSE(IDO,IF) DO 4 I=101,111 4 CALL DISPLY(3,I) TIM=2. ITAG=100 DO 5 I=30,41 ITAG=ITAG+1 CALL DRASLO(I,TIM,ITAG,DIST) DO 5 J=1,12 5 CALL PULSE(IDO,IF) DO 6 I=1,72 6 CALL PULSE(IDO,IF) CALL DISPLY(5,50) CALL DISPLY(5,51) DO 7 I=1,72 7 CALL PULSE(IDO,IF) PAUSE STOP END