SUBROUTINE BULLET C C This subroutine generates a "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 SINT(21), COST(1), IPENW(4) EQUIVALENCE (SINT(5),COST(1)) DATA SINT/ .19509, .55557, .83147, .980785, .980785, 1 .83147, .55557, .19509, -.19509, -.55557, -.83147, 1 -.980785, -.980785, -.83147, -.55557, -.19509, 1 .19509, .55557, .83147, .980785, .980785/ DATA YC/.5/, IPENW/3,5,4,4/, RMIN/.1/, RBIG/.25/ C C - DIMENSION OR PLOTTING? R = RBIG CALL POINTR("40) XC = IWIDTH*SCALE*WidAdj IF( DIMEN ) GO TO 2100 C C - GENERATE THE BULLET PENW = 0.013 XB = XC + R*COST(1) YB = YC + R*SINT(1) XP = XLL + XB*COSUPC - YB*SINUPC YP = YLL + XB*SINUPC + YB*COSUPC CALL PLOT (XP,YP,3) C 100 DO 1000 I=1,17 XB = XC + R*COST(I) YB = YC + R*SINT(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. RMIN) GO TO 100 C C - FILL IN CENTER R = R + PENW I = 1 DO 2000 J=1,17 XB = XC + R*COST(I) YB = YC + R*SINT(I) XP = XLL + XB*COSUPC - YB*SINUPC YP = YLL + XB*SINUPC + YB*COSUPC CALL PLOT (XP,YP,2) I = MOD (I + 7,16) + 1 XB = XC + R*COST(I) YB = YC + R*SINT(I) XP = XLL + XB*COSUPC - YB*SINUPC YP = YLL + XB*SINUPC + YB*COSUPC CALL PLOT (XP,YP,2) I = MOD(I + 10,16) + 1 2000 CONTINUE C C - ADVANCE COORDINATES. 2100 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