C
C======================================================================= C SUBROUTINE RPSYMB(ISYMB,XX,YY,HEIGHT) C C----------------------------------------------------------------------- INTEGER ISYMB REAL XX,YY,HEIGHT C Subroutine designed to plot centered symbols using CALCOPS graphic. C C Input: C ISYMB... Index of the symbol to be plotted. C XX ... X coordinate of the center of the symbol. C YY ... Y coordinate of the center of the symbol. C HEIGHT.. Vertical dimension of the symbol in centimetres. C No output: C C Subroutines and external functions required: C subroutine PLOT of the CALCOPS package. C C Date: 1998, November 26 C C Coded by Petr Bulant C C....................................................................... C REAL STUP PARAMETER (STUP=0.0174532) REAL AA,BB,CC,DD,EE,FF,GG,HH REAL HEIGH0 SAVE AA,BB,CC,DD,EE,FF,GG,HH,HEIGH0 DATA HEIGH0/0./ C STUP ... Value of one degree in radians. C AA,..HH ... Auxiliary variables. C HEIGH0 ... Value of HEIGHT of the last invocation. C----------------------------------------------------------------------- C IF (ISYMB.EQ.0) THEN C Definitions: WRITE(97,'(A)') '%% Symbol definitions: ' WRITE(97,'(A)') '/P101 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX AA add YY moveto ' WRITE(97,'(A)') ' XX AA sub YY lineto ' WRITE(97,'(A)') ' XX YY AA add moveto ' WRITE(97,'(A)') ' XX YY AA sub lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P102 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX BB sub YY BB sub moveto ' WRITE(97,'(A)') ' XX BB add YY BB add lineto ' WRITE(97,'(A)') ' XX BB sub YY BB add moveto ' WRITE(97,'(A)') ' XX BB add YY BB sub lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P103 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX YY AA add moveto ' WRITE(97,'(A)') ' XX AA add YY lineto ' WRITE(97,'(A)') ' XX YY AA sub lineto ' WRITE(97,'(A)') ' XX AA sub YY lineto ' WRITE(97,'(A)') ' XX YY AA add lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P104 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX BB add YY BB add moveto ' WRITE(97,'(A)') ' XX BB add YY BB sub lineto ' WRITE(97,'(A)') ' XX BB sub YY BB sub lineto ' WRITE(97,'(A)') ' XX BB sub YY BB add lineto ' WRITE(97,'(A)') ' XX BB add YY BB add lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P105 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX YY AA 0 360 stroke arc ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P106 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX YY AA add moveto ' WRITE(97,'(A)') ' XX CC add YY DD sub lineto ' WRITE(97,'(A)') ' XX CC sub YY DD sub lineto ' WRITE(97,'(A)') ' XX YY AA add lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P107 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX AA add YY moveto ' WRITE(97,'(A)') ' XX DD sub YY CC sub lineto ' WRITE(97,'(A)') ' XX DD sub YY CC add lineto ' WRITE(97,'(A)') ' XX AA add YY lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P108 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX YY AA sub moveto ' WRITE(97,'(A)') ' XX CC sub YY DD add lineto ' WRITE(97,'(A)') ' XX CC add YY DD add lineto ' WRITE(97,'(A)') ' XX YY AA sub lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P109 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX AA sub YY moveto ' WRITE(97,'(A)') ' XX DD add YY CC add lineto ' WRITE(97,'(A)') ' XX DD add YY CC sub lineto ' WRITE(97,'(A)') ' XX AA sub YY lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P110 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX CC sub YY DD add moveto ' WRITE(97,'(A)') ' XX YY lineto ' WRITE(97,'(A)') ' XX CC add YY DD add moveto ' WRITE(97,'(A)') ' XX YY lineto ' WRITE(97,'(A)') ' XX YY AA sub moveto ' WRITE(97,'(A)') ' XX YY lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P111 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX DD add YY CC add moveto ' WRITE(97,'(A)') ' XX YY lineto ' WRITE(97,'(A)') ' XX DD add YY CC sub moveto ' WRITE(97,'(A)') ' XX YY lineto ' WRITE(97,'(A)') ' XX AA sub YY moveto ' WRITE(97,'(A)') ' XX YY lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P112 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX CC add YY DD sub moveto ' WRITE(97,'(A)') ' XX YY lineto ' WRITE(97,'(A)') ' XX CC sub YY DD sub moveto ' WRITE(97,'(A)') ' XX YY lineto ' WRITE(97,'(A)') ' XX YY AA add moveto ' WRITE(97,'(A)') ' XX YY lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P113 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX DD sub YY CC add moveto ' WRITE(97,'(A)') ' XX YY lineto ' WRITE(97,'(A)') ' XX DD sub YY CC sub moveto ' WRITE(97,'(A)') ' XX YY lineto ' WRITE(97,'(A)') ' XX AA add YY moveto ' WRITE(97,'(A)') ' XX YY lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P114 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX FF sub YY EE add moveto ' WRITE(97,'(A)') ' XX FF add YY EE add lineto ' WRITE(97,'(A)') ' XX HH sub YY GG sub lineto ' WRITE(97,'(A)') ' XX YY AA add lineto ' WRITE(97,'(A)') ' XX HH add YY GG sub lineto ' WRITE(97,'(A)') ' XX FF sub YY EE add lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P115 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX HH sub YY GG add moveto ' WRITE(97,'(A)') ' XX FF add YY EE sub lineto ' WRITE(97,'(A)') ' XX FF sub YY EE sub lineto ' WRITE(97,'(A)') ' XX HH add YY GG add lineto ' WRITE(97,'(A)') ' XX YY AA sub lineto ' WRITE(97,'(A)') ' XX HH sub YY GG add lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P116 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX YY AA add moveto ' WRITE(97,'(A)') ' XX CC add YY DD sub lineto ' WRITE(97,'(A)') ' XX CC sub YY DD sub lineto ' WRITE(97,'(A)') ' XX YY AA add lineto ' WRITE(97,'(A)') ' XX YY AA sub moveto ' WRITE(97,'(A)') ' XX CC sub YY DD add lineto ' WRITE(97,'(A)') ' XX CC add YY DD add lineto ' WRITE(97,'(A)') ' XX YY AA sub lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P117 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX AA add YY moveto ' WRITE(97,'(A)') ' XX DD sub YY CC sub lineto ' WRITE(97,'(A)') ' XX DD sub YY CC add lineto ' WRITE(97,'(A)') ' XX AA add YY lineto ' WRITE(97,'(A)') ' XX AA sub YY moveto ' WRITE(97,'(A)') ' XX DD add YY CC add lineto ' WRITE(97,'(A)') ' XX DD add YY CC sub lineto ' WRITE(97,'(A)') ' XX AA sub YY lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P118 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX YY AA add moveto ' WRITE(97,'(A)') ' XX CC 7 div add YY DD 7 div add lineto ' WRITE(97,'(A)') ' XX CC add YY DD sub lineto ' WRITE(97,'(A)') ' XX YY AA 7 div sub lineto ' WRITE(97,'(A)') ' XX CC sub YY DD sub lineto ' WRITE(97,'(A)') ' XX CC 7 div sub YY DD 7 div add lineto ' WRITE(97,'(A)') ' XX YY AA add lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P119 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX AA add YY moveto ' WRITE(97,'(A)') ' XX DD 7 div add YY CC 7 div sub lineto ' WRITE(97,'(A)') ' XX DD sub YY CC sub lineto ' WRITE(97,'(A)') ' XX AA 7 div sub YY lineto ' WRITE(97,'(A)') ' XX DD sub YY CC add lineto ' WRITE(97,'(A)') ' XX DD 7 div add YY CC 7 div add lineto ' WRITE(97,'(A)') ' XX AA add YY lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P120 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX YY AA sub moveto ' WRITE(97,'(A)') ' XX CC 7 div sub YY DD 7 div sub lineto ' WRITE(97,'(A)') ' XX CC sub YY DD add lineto ' WRITE(97,'(A)') ' XX YY AA 7 div add lineto ' WRITE(97,'(A)') ' XX CC add YY DD add lineto ' WRITE(97,'(A)') ' XX CC 7 div add YY DD 7 div sub lineto ' WRITE(97,'(A)') ' XX YY AA sub lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P121 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX AA sub YY moveto ' WRITE(97,'(A)') ' XX DD 7 div sub YY CC 7 div add lineto ' WRITE(97,'(A)') ' XX DD add YY CC add lineto ' WRITE(97,'(A)') ' XX AA 7 div add YY lineto ' WRITE(97,'(A)') ' XX DD add YY CC sub lineto ' WRITE(97,'(A)') ' XX DD 7 div sub YY CC 7 div sub lineto ' WRITE(97,'(A)') ' XX AA sub YY lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P122 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX YY AA add moveto ' WRITE(97,'(A)') ' XX BB 7 div add YY BB 7 div add lineto ' WRITE(97,'(A)') ' XX AA add YY lineto ' WRITE(97,'(A)') ' XX BB 7 div add YY BB 7 div sub lineto ' WRITE(97,'(A)') ' XX YY AA sub lineto ' WRITE(97,'(A)') ' XX BB 7 div sub YY BB 7 div sub lineto ' WRITE(97,'(A)') ' XX AA sub YY lineto ' WRITE(97,'(A)') ' XX BB 7 div sub YY BB 7 div add lineto ' WRITE(97,'(A)') ' XX YY AA add lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P123 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX YY AA 7 div add moveto ' WRITE(97,'(A)') ' XX BB add YY BB add lineto ' WRITE(97,'(A)') ' XX AA 7 div add YY lineto ' WRITE(97,'(A)') ' XX BB add YY BB sub lineto ' WRITE(97,'(A)') ' XX YY AA 7 div sub lineto ' WRITE(97,'(A)') ' XX BB sub YY BB sub lineto ' WRITE(97,'(A)') ' XX AA 7 div sub YY lineto ' WRITE(97,'(A)') ' XX BB sub YY BB add lineto ' WRITE(97,'(A)') ' XX YY AA 7 div add lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P124 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX FF sub YY EE add moveto ' WRITE(97,'(A)') ' XX YY AA add lineto ' WRITE(97,'(A)') ' XX FF add YY EE add lineto ' WRITE(97,'(A)') ' XX HH add YY GG sub lineto ' WRITE(97,'(A)') ' XX HH sub YY GG sub lineto ' WRITE(97,'(A)') ' XX FF sub YY EE add lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P125 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX HH sub YY GG add moveto ' WRITE(97,'(A)') ' XX HH add YY GG add lineto ' WRITE(97,'(A)') ' XX FF add YY EE sub lineto ' WRITE(97,'(A)') ' XX YY AA sub lineto ' WRITE(97,'(A)') ' XX FF sub YY EE sub lineto ' WRITE(97,'(A)') ' XX HH sub YY GG add lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P126 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX YY AA add moveto ' WRITE(97,'(A)') ' XX YY AA sub lineto ' WRITE(97,'(A)') ' XX CC add YY DD sub lineto ' WRITE(97,'(A)') ' XX CC sub YY DD add lineto ' WRITE(97,'(A)') ' XX CC sub YY DD sub lineto ' WRITE(97,'(A)') ' XX CC add YY DD add lineto ' WRITE(97,'(A)') ' XX YY AA add lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P127 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX AA add YY moveto ' WRITE(97,'(A)') ' XX AA sub YY lineto ' WRITE(97,'(A)') ' XX DD sub YY CC sub lineto ' WRITE(97,'(A)') ' XX DD add YY CC add lineto ' WRITE(97,'(A)') ' XX DD sub YY CC add lineto ' WRITE(97,'(A)') ' XX DD add YY CC sub lineto ' WRITE(97,'(A)') ' XX AA add YY lineto ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '/P128 {/YY exch def /XX exch def ' WRITE(97,'(A)') ' XX YY AA 0 360 stroke arc fill ' WRITE(97,'(A)') ' stroke} bind def ' WRITE(97,'(A)') '%% End of definitions. ' RETURN ENDIF IF (ISYMB.GT.28) ISYMB=28 IF (HEIGHT.NE.HEIGH0) THEN HEIGH0=HEIGHT AA=HEIGHT/2. *72./2.54 BB=AA/SQRT(2.) CC=AA*SQRT(3.)/2. DD=HEIGHT/4. *72./2.54 EE=AA*SIN(18.*STUP) FF=AA*COS(18.*STUP) GG=AA*COS(36.*STUP) HH=AA*SIN(36.*STUP) WRITE(97,'(A,F5.1,A)') '/AA ',AA,' def' WRITE(97,'(A,F5.1,A)') '/BB ',BB,' def' WRITE(97,'(A,F5.1,A)') '/CC ',CC,' def' WRITE(97,'(A,F5.1,A)') '/DD ',DD,' def' WRITE(97,'(A,F5.1,A)') '/EE ',EE,' def' WRITE(97,'(A,F5.1,A)') '/FF ',FF,' def' WRITE(97,'(A,F5.1,A)') '/GG ',GG,' def' WRITE(97,'(A,F5.1,A)') '/HH ',HH,' def' ENDIF WRITE(97,'(2F6.1,A,I3)') XX*72./2.54,YY*72./2.54,' P',100+ISYMB RETURN END C