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