SUBROUTINE STAR C C This subroutine generates a five pointed star "bullet". C C+ COMMON /ENTRY/ XENTRY, YENTRY, DIMEN, XMAX, YMAX, YMIN COMMON /HCDB/ ICASE, NVEC, IWIDTH, LL0, LL0D, SCALE, SCALED, 1 COSUPC, SINUPC, COSUPD, SINUPD, COSUPT, SINUPT, DES, DEF COMMON /HCS/ XLINE, YLINE, XBASE, YBASE, MAJLVL, MINLVL, 1 XLL, YLL, SIZEF, COSUPF, SINUPF, SIZEC, XDIV, YDIV, 1 XSAVE, YSAVE, MAJSAV, MINSAV, 1 XSNGLE, YSNGLE, MAJSNG, MINSNG, 1 XDBLE, YDBLE, MAJDBL, MINDBL, 1 XVEX, YVEX, MAJVEX, MINVEX COMMON /PLTR/ ILun, IDev, IsTerm, IMode, IXMax, IYMax, 1 Cnvrsn, CMag, CnvMag, IX0, IY0, KSetNo, IFancy, IBfDv3, 1 CSize, DeltaH, DeltaV, Upsiln, CosUp, SinUp, WidAdj INTEGER DES, DEF LOGICAL DIMEN LOGICAL*1 BUFS C- DIMENSION SINS(6), COSS(6), IPENW(4) DATA YC/.5/, IPENW/3,5,4,4/, RMIN/.05/, RBIG/.375/ DATA SINS/1.0, -.8090, .3090, .3090, -.8090, 1.0/ DATA COSS/0.0, -.5878, .9511, -.9511, .5878, 0.0/ C C - DIMENSION OR PLOTTING? R = RBIG CALL POINTR("40) XC = IWIDTH*SCALE*WidAdj IF( DIMEN ) GO TO 3100 C C - GENERATE THE STAR PENW = 0.013 RPENT = .309017*R XB = XC + R*COSS(1) YB = YC + R*SINS(1) XP = XLL + XB*COSUPC - YB*SINUPC YP = YLL + XB*SINUPC + YB*COSUPC CALL PLOT (XP,YP,3) C 100 DO 1000 I=1,6 XB = XC + R*COSS(I) YB = YC + R*SINS(I) XP = XLL + XB*COSUPC - YB*SINUPC YP = YLL + XB*SINUPC + YB*COSUPC 1000 CALL PLOT (XP,YP,2) C C - DECREMENT RADIUS R = R - PENW IF(R .GE. RPENT) GO TO 100 C C - FILL IN CENTER WITH PENTAGONS 1100 I = 1 DO 2000 J=1,6 XB = XC - R*COSS(I) YB = YC - R*SINS(I) XP = XLL + XB*COSUPC - YB*SINUPC YP = YLL + XB*SINUPC + YB*COSUPC CALL PLOT (XP,YP,2) 2000 I = MOD(I+2,5) + 1 R = R - PENW IF( R .GT. RMIN ) GO TO 1100 C C - THIS MAKES THE FINAL LITTLE STAR DO 3000 I=1,6 XB = XC - R*COSS(I) YB = YC - R*SINS(I) XP = XLL + XB*COSUPC - YB*SINUPC YP = YLL + XB*SINUPC + YB*COSUPC 3000 CALL PLOT (XP,YP,2) C C - ADVANCE COORDINATES. 3100 XWIDTH = 2.*IWIDTH*COSUPT*WidAdj YWIDTH = 2.*IWIDTH*SINUPT*WidAdj XLL = XLL + XWIDTH YLL = YLL + YWIDTH XBASE = XBASE + XWIDTH YBASE = YBASE + YWIDTH C C - FIND EXTREMES. IF( .NOT. DIMEN ) RETURN YMAX = AMAX1( YMAX, YLL ) YMIN = AMIN1( YMIN, YLL ) RETURN END