home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
fchek284.zip
/
test
/
t208a.f
< prev
next >
Wrap
Text File
|
1994-11-06
|
4KB
|
115 lines
SUBROUTINE DDIAPA (IX,IY)
C (Add to Path)
C Add the point (IX,IY) to the current path, which is assumed
C to have already been started by a call to DDIBPA. The
C current point and visibility are updated in COMMON.
C (27-May-1991)
C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C
C EXTERNAL REFERENCES (FUNCTION,SUBROUTINE,COMMON)
C
C EXTERNAL REFS TKIOLL, TKIOWB, TKIOWH, TKIOWN
C
INTEGER TKIOLL
C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C
C NON-COMMON VARIABLES
C
C SETS BLANK
C
INTEGER BLANK, DUMMY, IX, IY
C
C-----------------------------------------------------------------------
C P o s t S c r i p t
C D i s p l a y D e v i c e I n t e r f a c e
C C O M M O N B l o c k
C
C DSSIZE display surface size in cm
C IMAGE image transformation in effect
C (LASTX,LASTY,VILAST) last position and visibility of pen
C LINEIN line intensity (0..1 scale)
C LINEWT line weight (1..25 scale)
C MAGFAC resolution magnification factor
C (MOVEX,MOVEY) position of first point in path
C NPATH number of line segments in current page
C PLSTEP plotter step size in cm
C (PSXOFF,PSYOFF) image offset in PostScript units (bp)
C ROTATE plot frame is rotated
C (SX,SY) scale factors (unit square to plot steps)
C TIMAGE(*,*) image transformation matrix
C (XMAX,YMAX,ZMAX) normalized device space extents
C (MAXX,MAXY,MINX,MINY) actual coordinate limits reached
C
C-----------------------------------------------------------------------
INTEGER LASTX, LASTY, LINEWT, MAGFAC
INTEGER MAXX, MAXY, MINX, MINY
INTEGER MOVEX, MOVEY, NPATH, PSXOFF
INTEGER PSYOFF
C
LOGICAL DVINIT, IMAGE, ROTATE, VILAST
C
REAL DSSIZE, LINEIN, PLSTEP, SX
REAL SY, TIMAGE, XMAX, YMAX
REAL ZMAX
C
COMMON / DDI01 / DSSIZE, LINEIN, PLSTEP, SX
COMMON / DDI01 / SY, TIMAGE(4,4), XMAX, YMAX
COMMON / DDI01 / ZMAX, LASTX, LASTY, LINEWT
COMMON / DDI01 / MAGFAC, MAXX, MAXY, MINX
COMMON / DDI01 / MINY, MOVEX, MOVEY, NPATH
COMMON / DDI01 / PSXOFF, PSYOFF, DVINIT, IMAGE
COMMON / DDI01 / ROTATE, VILAST
C
C
DATA BLANK / 32 /
C
C We can generate an entry of size "-ddddd -ddddd R "; try to
C keep line lengths under 80 characters.
C
IF (TKIOLL(DUMMY) .GT. 64) CALL TKIOWH (2H$N,2)
C
C Use relative coordinates for lines to reduce the number of
C bytes in the verbose PostScript command language. This
C shortens the plot file by 5 to 10 percent.
C
C We optimize output into 3 different forms:
C
C # # R (relative lineto)
C # X (relative lineto with delta-y = 0)
C # Y (relative lineto with delta-x = 0)
C
C The latter two cases occur frequently enough to be worth
C taking advantage of to compress the output and reduce the
C parsing time. We cannot discard zero length segments,
C however, because that would discard single points from a
C point plot.
C
IF (IX .EQ. LASTX) GO TO 10
IF (IY .EQ. LASTY) GO TO 20
CALL TKIOWN (IX-LASTX)
CALL TKIOWB (BLANK)
CALL TKIOWN (IY-LASTY)
CALL TKIOWH (3H R ,3)
GO TO 30
10 CALL TKIOWN (IY-LASTY)
CALL TKIOWH (3H Y ,3)
GO TO 30
20 CALL TKIOWN (IX-LASTX)
CALL TKIOWH (3H X ,3)
30 NPATH = NPATH + 1
LASTX = IX
LASTY = IY
VILAST = .TRUE.
MAXX = MAX0(MAXX,IX)
MINX = MIN0(MINX,IX)
MAXY = MAX0(MAXY,IY)
MINY = MIN0(MINY,IY)
C
C Insert a line break periodically to prevent excessively
C long lines.
C
C IF (MOD(NPATH,10) .EQ. 0) CALL TKIOWH (2H$N,2)
C
40 RETURN
END