Next: 9.2 Creating 3D geometric figures
Up: 9 Examples
Prev: 9 Examples
Contents
The following subroutine uses only the 2D graphics instructions.
PROGRAM IMAG2D C --- PLOT FIGURES REAL PI PARAMETER (PI=3.14152) INTEGER ITERM,PAROUT(10), PARIN(10) CHARACTER*80 STRING REAL PAS,R1,R2,A,B,ALPHA,X,Y,Z,XMIN,XMAX,YMIN,YMAX REAL CX,CY,PX,XX,YY,DIMFEN,CX1,CX2,TAILLE,PY1,PY2,O,R,CY1,CY2 LOGICAL BID INTEGER IBID,NBCIN CHARACTER*1 REP C --- INTERACTIVE DEFINITION OF THE TERMINAL ITERM = 0 CALL DEFDEV(ITERM, PAROUT, PARIN,STRING) C --- SCREEN DIMENSIONS CALL SZSCRN(XMIN, XMAX, YMIN, YMAX) C --- COMPUTATION OF A SQUARE WINDOW FOR THE PLOT DIMFEN = MIN(XMAX-XMIN, YMAX-YMIN) / 2. CX = (XMIN + XMAX) / 2. CY = (YMIN + YMAX) / 2. CX1 = CX - DIMFEN CX2 = CX + DIMFEN CY1 = CY - DIMFEN CY2 = CY + DIMFEN CALL FENTR2(XMIN, XMAX, YMIN, YMAX) CALL MASQU2(XMIN, XMAX, YMIN, YMAX) C --- TEXT SIZE TAILLE = MIN((YMAX-YMIN)/10. , 0.5) CALL DRW3TX(TAILLE, 0., O) C --- TEXT POSITION PX = XMIN + (XMAX-XMIN) / 20. PY1 = YMAX - 2.*TAILLE PY2 = YMIN + 2.*TAILLE C --- INPUT STEP PAS=0.5 2 CONTINUE CALL CLEAN C --- CURRENT COLOR = WHITE CALL SETCOL(1., 1., 1.) CALL GETNUM('DONNEZ LE PAS DU LA SPIRALE ENTRE 0. ET 1. : ', + PX, PY1, PAS, IBID, BID, 1, 1, 0, 0, 0.001, 1.) C --- MASK DEPENDING ON PLOT CALL FENTR2(CX1, CX2, CY1, CY2) CALL MASQU2(-100., 100., -100., 100.) C --- INITIAL CURSON POSITION CALL MOV2TO(0., 0.) C --- PLOT OF OBJECT R = 0. DO 1 A = 0. , 8.*PI ,2.*PI/200 R = R + PAS/10. X = R * COS(A) Y = R * SIN(A) CALL LIN2TO(X, Y) 1 CONTINUE C --- END OF PLOT CALL FENTR2(XMIN, XMAX, YMIN, YMAX) CALL MASQU2(XMIN, XMAX, YMIN, YMAX) CALL SETCOL(1., 1., 1.) XX = PX YY = PY2 CALL GETEXT('> CONTINUER (Y/N) ? ', XX, YY, 1, REP, NBCIN) IF (REP.EQ.'O'.OR.REP.EQ.'Y') THEN C --- CONTINUE GOTO 2 ELSE C --- DO NOT CONTINUE CALL ENDDEV(ITERM) ENDIF END