C C THIS ROUTINE DEMONSTRATES SOME OF THE FEATURES OF THE PLOT ROUTINES C BYTE ICHAR INTEGER IX(500),IY(500) REAL X(500),Y(500),S(500) DATA PI/3.14159265/, E/2.71828183/ CALL SCTEST(ITEST,IXP,IYP,INTEN,IHIGH,IWIDE,IVER,IHOR, 1 IVRES,IHRES) IF(ITEST .eq. 0) STOP 'This is not a graphics terminal' CALL ERASE TYPE 1005, ITEST,IXP,IYP,INTEN,IHIGH,IWIDE,IVER,IHOR, 1 IVRES,IHRES 1005 format(//' ITEST= 'I5 1 /' X= 'I5/' Y= 'I5 1 /' Intensity= 'I5 1 /' Chars/page= 'i5/' Chars/line= 'i5 2 /' Max Y= 'I5/' Max X= 'i5 3 /' Y Resolution= 'I5/' X Resolution= 'I5 4 //' TYPE "return" to continue') ACCEPT 1000,ICHAR FAC = PI / 20. !ANNGLE PER STEP C C GENERATE A SPIRAL C XS = 1./3. YS = XS XO = -500.*XS YO = -400.*YS DO 10 I = 1,400 THET = I *FAC RADIUS = (I-1)*.25 X(I) = RADIUS*SIN(THET) Y(I) = RADIUS*COS(THET) S(I) = 1. IX(I) = (X(I) - XO)/XS IY(I) = (Y(I) - YO)/YS 10 CONTINUE CALL ERASE !ERASE THE SCREEN CALL SHADE(IX,IY,400) ! Shade in spiral CALL PLCHAR (60,60,'Test of SHADE') CALL PLCHAR (60,10,'Press "RETURN" to continue') ACCEPT 1000,ICHAR CALL ERASE CALL BOXIT(50,50,950,750) !CREATE A WHITE 'BOX' CALL INTENS(0) !NOW SET UP TO ERASE PART OF BOX CALL PSSCAL(XO,XS,YO,YS) !SET PLOTTING SCALE CALL SCTONE(X,Y,400) !ERASE IN A SPIRAL PATTERM CALL PLCHAR (60,60,'Test of INTENS,BOXIT,SCTONE') CALL INTENS(1) !SET UP FOR NORMAL PLOT CALL PLCHAR (60,10,'Press "RETURN" to continue') ACCEPT 1000,ICHAR CALL QPLOT(X,Y,S,400,-1,0,0) CALL PLCHAR(0,10,'Test of QPLOT ') CALL PLCHAR (-1,10,'Press "RETURN" to continue') ACCEPT 1000,ICHAR CALL ERASE ! Erase screen 1000 FORMAT(A1) CALL PLCHAR(0,10,'Cursor test hit "RETURN" to exit') 900 TIM = SECNDS(0.) CALL CURSOR(IXP,IYP,ICHAR) TIM = SECNDS(TIM) TYPE 1001, ixP,iyP,ichar,TIM 1001 FORMAT(' X= ' i5' Y= 'I5' Character='I3,1p,G15.3' seconds elapsed') IF(ICHAR .eq. "15) CALL EXIT GO to 900 END