1 C
\ e-+-+-+-+-+ P O L A R . F T -+-+-+-+-+
5 C AUFRUF: CALL POLAR (RAD,WINK,NPTS,INC,LINTYP,INTEG,RMAX,SCAL)
7 C RAD: FELD, IN DEM DIE RADIALKOMPONENTEN DER ZU ZEICHNENDEN
8 C KURVE GESPEICHERT SIND.
10 C WINK: FELD, IN DEM DIE IM BOGENMASS GEMESSENEN WINKELGROESSEN
13 C NPTS: ANZAHL DER FELDELEMNTE VON RAD UND WINK
15 C INC: SCHRITTWEITE IN DEN BEIDEN FELDERN RAD, WINK.
17 C LINTYP: SPEZIFIZIERT DIE ZEICHENART DER KURVE.
19 C LINTYP>0: DIE KOORDINATENPUNKTE WERDEN DURCH EINE LINIE
20 C VERBUNDEN UND JEDER N-TE PUNKT (N=LINTYP) AUS DER REIHE
21 C DER PUNKTE, DIE ZUM ZEICHNEN DER KURVE BENOETIGT WERDEN, WIRD
22 C MIT EINEM SYMBOL VERSEHEN.
24 C LINTYP=0: ALLE KOORDINATEN PUNKTE WERDEN DURCH EINE LINIE VERBUNDEN.
25 C SYMBOLE WERDEN NICHT GEZEICHNET.
27 C LINTYP<0: JEDER N-TE (N=ABS(LINTYP)) DER PUNKTE, DIE ZUM ZEICHNEN
28 C DER KURVE BENOETIGT WERDEN, WIRD MIT EINEM SYMBOL VERSEHEN.
29 C DAS ZEICHNEN DER KURVE SELBST UNTERBLEIBT.
31 C INTEG: ERHAELT EINEN WERT ZWISCHEN 0 UND 15. HIERDURCH WIRD
32 C BEI LINTYP.NE.0 DAS SYMBOL SPEZIFIZIERT, DAS BEI DEN DURCH
33 C LINTYP AUSGEWAEHLTEN PUNKTEN GEZEICHNET WERDEN SOLL.
34 C SIEHE HIERZU SYMBOL ROUTINE.
36 C RMAX: IST RMAX>0, SO WIRD AUCH DAS ZUR KURVE GEHOERIGE KOORDINATEN-
37 C SYSTEM GEZEICHNET. DESSEN ACHSEN VERLAUFEN PARALLEL ZUR X-,
38 C BZW. Y-PLOTTERACHSEUND HABEN JEWEILS DIE LAENGE RMAX.
39 C DURCH CALL PLOT(X,Y,-3) MUSS DER BENUTZER DEN URSPRUNG (X,Y)
40 C SEINES KOORDINATENSYSTEMS SELBST DEFINIEREN. EIN MASSTABSFAKTOR
41 C ZUM ZEICHNEN DER KURVE WIRD VON POLAR DERART BESTIMMT, DASS DIE
42 C GESAMMTE ZEICHNUNG PLATZ FINDET.
44 C RMAX=0: ES WIRD KEIN KOORDINATENSYSTEM GEZEICHNET. ZUM ZEICHNEN DER
45 C KURVE WIRD ALS MASSSTABSFAKTOR DER WERT VON SCAL BENUTZT.
47 C RMAX<0: ES WIRD KEIN KOORDINATEN SYSTEM GEZEICHNET. ZU ZEICHNEN
48 C DER KURVE WIRD EIN MASSSTABSFAKTOR WIE FUER RMAX>0 BESTIMMT.
50 C SCAL:: MASSTABSFAKTOR ZUM ZEICHNEN DER KURVE. ER HAT NUR BEDEUTUNG,
53 SUBROUTINE POLAR(RAD,WINK,NPTS,INC,LINTYP,INTEG,RMAX,SCAL)
54 REAL RAD(NPTS),WINK(NPTS),RMAX,SCAL
55 INTEGER NPTS,INC,LINTYP,INTEG
59 INTEGER I,NPT,PENPOS,PENUP,PENDWN
60 DATA PENUP,PENDWN /3,2/
62 SKAL=SCAL @ THE DEFAULT FACTOR
63 IF (RMAX.EQ.0) GOTO 20 @ NO AXIS AT ALL, TAKE SCAL FOR SCALING
65 SKAL=0 @ NOW WE COMPUTE THE SCALE FACTOR
67 15 SKAL=AMAX1(SKAL,ABS(RAD(I))) @ HERE WE SEARCH FOR THE MAXIMUM OF RADIANTS
68 SKAL=ABS(RMAX)/SKAL @ AND THIS IS THE NEW FACTOR
70 20 CONTINUE @ SCALE FACTOR IS STORED IN SKAL
71 PENPOS=PENUP @ THE FISRT POINT IS ALWAYS PLOTTED WITH PEN UP
75 X=RAD(I)*SKAL*COS(W) @ AND NOW WE COMPUTE X AND Y COMPONNENTS
77 IF (LINTYP) 30,40,50 @ HERE WE DECIDE HOW TO PLOTTC
78 30 IF(MOD(NPT,ABS(LINTYP)).NE.0) GOTO 25
79 CALL SYMBOL(X,Y,.4,INTEG,0,-1) @ LINTYP<0, SINGLE SYMBOL ONLY
82 40 CALL XYPLOT(X,Y,PENPOS) @ LINTYP=0, LINE ONLY
86 50 CALL XYPLOT(X,Y,PENPOS) @ LINTYP>0, LINE+SYMBOL
88 IF (MOD(NPT,LINTYP).NE.0) GOTO 25
89 CALL SYMBOL (X,Y,.4,INTEG,0,-1)
91 25 NPT=NPT+1 @ HERE WE COUNT THE NUMBER OF POINTS SCANNED