C DRAWING IN 4 VIEWS J.K.COOK C DIMENSION D(3),S(3) COMMON/LIMITS/XMIN,XMAX,YMIN,YMAX COMMON/BULK/I3STRT,I3END,OBJ(6,50) COMMON/PAINT/I2STRT,I2END,PIC(4,50) COMMON/EYCEP/E(3),C(3),U(3) COMMON/OIL/IVECT(200) CALL CLEAR(.TRUE.) READ(5,500)((OBJ(I,J),I=1,6),J=1,41) 500 FORMAT(6F5.1) DO 550 J=1,49 DO 550 I=1,6 550 OBJ(I,J)=1.5*OBJ(I,J) DIST=9999. C(1)=0. C(2)=0. C(3)=0. STEP=48. ISTEP=STEP CALL DISPLY(1,1,IVECT,1,1) CALL DISPLY(1,2,IVECT,1,1) CALL DISPLY(1,3,IVECT,1,1) CALL DISPLY(1,4,IVECT,1,1) DO 100 I=100,108 100 CALL DISPLY(1,I,IVECT,1,1) C C DO 1 I=30,48 DO 5 J=1,3 5 D(J)=(OBJ(J+3,I)-OBJ(J,I))/STEP DO 4 J=4,6 4 OBJ(J,I)=OBJ(J-3,I) DO 6 K=1,ISTEP DO 3 J=4,6 3 OBJ(J,I)=OBJ(J,I)+D(J-3) XMIN=-25. XMAX=75. YMIN=-25. YMAX=75. E(1)=0. E(2)=0. E(3)=9999. U(1)=0. U(2)=10. U(3)=0. I3STRT=30 I3END=I I2STRT=30 I2END=I 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) YMIN=-75. YMAX=25. E(1)=0. E(2)=9999. E(3)=0. U(1)=0. U(2)=0. U(3)=-10. CALL ROTER CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,2) CALL DISPLY(6,2,IVECT,1,LAST) XMIN=-75 XMAX=25. E(1)=9999. E(2)=2500. E(3)=9999. U(1)=0. U(2)=10. U(3)=0. CALL ROTER CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,4) CALL DISPLY(6,4,IVECT,1,LAST) YMIN=-25. YMAX=75. E(1)=9999. E(2)=0. E(3)=0. CALL ROTER CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,3) CALL DISPLY(6,3,IVECT,1,LAST) 6 CALL PULSE(IDO,IF) 1 CONTINUE C C NOW DRAW THE AXES C ILIN=1 STEP=24. ISTEP=24 26 DO 25 L=1,5 DO 15 J=1,3 15 D(J)=(OBJ(J+3,ILIN)-OBJ(J,ILIN))/STEP DO 14 J=4,6 14 OBJ(J,ILIN)=OBJ(J-3,ILIN) DO 16 K=1,ISTEP DO 13 J=4,6 13 OBJ(J,ILIN)=OBJ(J,ILIN)+D(J-3) XMIN=-25. XMAX=75. YMIN=-25. YMAX=75. E(1)=0. E(2)=0. E(3)=9999. U(1)=0. U(2)=10. U(3)=0. I3STRT=ILIN I3END=ILIN I2STRT=ILIN I2END=ILIN CALL ROTER CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,101) CALL DISPLY(6,101,IVECT,1,LAST) YMIN=-75. YMAX=25. E(1)=0. E(2)=9999. E(3)=0. U(1)=0. U(2)=0. U(3)=-10. CALL ROTER CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,102) CALL DISPLY(6,102,IVECT,1,LAST) XMIN=-75. XMAX=25. E(1)=9999. E(2)=2500. E(3)=9999. U(1)=0. U(2)=10. U(3)=0. CALL ROTER CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,104) CALL DISPLY(6,104,IVECT,1,LAST) YMIN=-25. YMAX=75. E(1)=9999. E(2)=0. E(3)=0. CALL ROTER CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,103) CALL DISPLY(6,103,IVECT,1,LAST) 16 CALL PULSE(IDO,IF) C C TURN ON ARROWS AND LETTERS C I3STRT=ILIN+3 I3END=ILIN+8 IF(ILIN.EQ.19)I3END=ILIN+10 I2STRT=I3STRT I2END=I3END XMIN=-25. XMAX=75. YMIN=-25. YMAX=75. E(1)=0. E(2)=0. E(3)=9999. U(1)=0. U(2)=10. U(3)=0. CALL ROTER CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,105) CALL DISPLY(6,105,IVECT,1,LAST) YMIN=-75. YMAX=25. E(1)=0. E(2)=9999. E(3)=0. U(1)=0. U(2)=0. U(3)=-10. CALL ROTER CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,106) CALL DISPLY(6,106,IVECT,1,LAST) XMIN=-75. XMAX=25. E(1)=9999. E(2)=2500. E(3)=999. U(1)=0. U(2)=10. U(3)=0. CALL ROTER CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,-1) CALL DISPLY(3,107) CALL DISPLY(6,107,IVECT,1,LAST) YMIN=-25. YMAX=75. E(1)=9999. E(2)=0. E(3)=0. CALL ROTER CALL MAPPER(DIST) CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST) CALL DISPLY(3,108) CALL DISPLY(6,108,IVECT,1,LAST) CALL PULSE(IDO,IF) 25 CONTINUE ILIN=ILIN+9 IF(ILIN.LT.20)GO TO 26 PAUSE STOP END