Wiki Markup |
---|
{alias:psc}
h2. Name
*psc* — PostScript plotting
h2. Syntax
{panel:|borderStyle=solid|borderWidth=1|bgColor=#FFFFAA}
*psc lwf | slwf | on | off | open | close | scp | fontsize | vie | align | status | prot | col | font | fill | rec | stroke | expand | talign | txt | axes | curtxt | pos | line | chf | utmgrid | moveto | lineto | win | devcm2user | arc | ssc | bmp | jpeg | cross | newline | clip | linestyle | linewidth | outline | dash | overprint | ticml | pattern*
{panel}
h2. Description
PostScript plotting, settings and commands.
The plotting system in Geocap called dplot is applying these commands to plot maps with a high carthographic standard.
PostScript is a state system which means that a specific setting is valid until a new setting is applied.
Note that it is possible to use *psc com* to write native PostScript commands. Check the [PostScript Language Reference Manual (third edition)|http://www.adobe.com/products/postscript/pdfs/PLRM.pdf].
h2. Arguments
*lwf* _line\_width\_factor_
{indent}Set the _line\_width\_factor_ of a postscript pen.{indent}
*slwf* _line\_width\_factor_
{indent}Set _line\_width\_factor_ for shift lines in contouring.{indent}
*open* _file\_name_
{indent}Open the _file\_name_ for writing postscript output.{indent}
*close*
{indent}Close the current output file for writing postscript output.{indent}
*scp* _scale\_in\_meters\_x_ _scale\_in\_meters\_y_ _rel\_portion\_of\_horizontal\_margin\_left_ _rel\_portion\_of\_vertical\_margin\_bottom_
{indent}Scale plot, using the scale parameters for plot in x and y direction and the relative portion of the margins.{indent}
*fontsize* _fontsize_ \[*cm*]
{indent}Set the fontsize in user coordinates or in cm.{indent}
*vie* _x\_lower\_left_ _y\_lower\_left_ _x\_upper\_right_ _y\_upper\_right_ \[*cm*]
{indent}Set viewport area, either in relative coordinates or in cm.{indent}
*align* \[*top | bottom | left | right | center*]
{indent}Set graphics alignment.{indent}
*status*
{indent}Will write out the status of postscript in the message window.{indent}
*prot* \[*reset*] | _x\_position_ _y\_position_ _rotation\_angle_ \[*cm*]
{indent}Set rotation of plot in user or cm coordinates.{indent}
*col* _red blu gre_
{indent}Display the postscript line in rgb values _red blu gre_. Observe that the standard col command will also affect postscript when active.{indent}
*font* _font\_number_
{indent}Will set the font with the given _font\_number_.{indent}
*fill*
{indent}Will issue the postscript *fill* command in the output file.{indent}
*stroke*
{indent}Will issue the postscript *stroke* command in the output file.{indent}
*rec* _x\_lower\_left_ _y\_lower\_left_ _x\_upper\_right_ _y\_upper\_right_
{indent}Will draw a rectangle according to the parameter input.{indent}
*expand hor | ver | inside | outside | cover*
{indent}Will expand the plot inside the viewport according to the argument.{indent}
{indent}
{info:title=Scale to match width of window/viewport}
*hor*: scale_y = scale_x.
*ver*: scale_x = scale_y.
*inside*: shortest of scale_x or scale_y.
*outside*: longest of scale_x or scale_y.
*cover*: scale to viewport exactly.
{info}
{indent}
*txt* _text_
{indent}Display text in the plot using the active font and font size.{indent}
*curtxt* _curve\_text_ \[*size* _size_] \[*rot* _rot\_angle_] \[*use*] \[*bsp*] \[*palign* _align\_x_ _align\_y_]
{indent}Display _curve\_text_ by following the curve in active data using the active font and font size.
*use*: use the curve as it is. *bsp*: b-spline the curve. *palign*: position aligning the text according to _align\_x_ _align\_y_.
If these parameters are set to 0 the text will be placed on the line.{indent}
*axes n | e | w | s* \[_incrx | incry | factorx | factory | offsetx | offsety_]
{indent}Display axes for side: north | east | west | south. Specify increment, factor and offset.{indent}
*talign* _x\_position_ _y\_position_
{indent}Set graphics alignment of text.{indent}
*ticml* _tic\_mark\_length_
{indent}Specify tic mark length for axes of size _tic\_mark\_length_.{indent}
*pos* _x\_position_ _y\_position_ *cm*
{indent}Set current position. Possibly translate from user to cm.{indent}
*line* _x\_start_ _y\_start_ _x\_stop_ _y\_stop_
{indent}Will draw a line from start to stop.{indent}
*chf* _crosshair\_factor_
{indent}Factor of the small cross lines in geographical grid.{indent}
*utmgrid* _delta\_x_ _delta\_y_ _cross\_size_
{indent}Plotting of utmgrid or current projection.{indent}
*moveto* _x\_start_ _y\_start_
{indent}Will move the pen to the start position.{indent}
*lineto* _x\_stop_ _y\_stop_
{indent}Will draw the pen to the stop position.{indent}
*win* _x\_lower\_left_ _y\_lower\_left_ _x\_upper\_right_ _y\_upper\_right_ \[*aoi*]
{indent}Set plot window area in world coordinates. *aoi* means set this as area of interest.{indent}
*devcm2user*
{indent}Will return to a Tcl variable the factor between cm and user coordinates.{indent}
*user2devcm*
{indent}Will return to a Tcl variable the factor between user and cm coordinates.{indent}
*arc* _x\_center_ _y\_center_ _radius_ _start\_angle_ _stop\_angle_
{indent}Will draw an arc according to the parameters specified.{indent}
*ssc*
{indent}Will set the area of interest to match the bounding box of active data.{indent}
*bmp | jpeg | jpg* _file\_name_ | *use*
{indent}Display a bit map of specified format from a _file\_name_ or use the current graphics on the screen.{indent}
*cross* _x\_center_ _y\_center_ _size_
{indent}Will draw a cross at _x\_center y\_center_ with the total size in x and y directions.{indent}
*newline*
{indent}Issue a new text line equivalent to 1.2 times the fontsize.{indent}
*clip* _x\_lower\_left y\_lower\_left x\_upper\_right y\_upper\_right_
{indent}Clip out an area of the plot in user coordinates.{indent}
*linestype* _line\_style_
{indent}Will set the line style, use 0,1 or 2. Ref. [PostScript Language Reference Manual (third edition)|http://www.adobe.com/products/postscript/pdfs/PLRM.pdf] p.673-674, setlinecap.{indent}
*linewidth* _line\_width_
{indent}Will set the line with size. To be used in pattern specifications.{indent}
*outline on | off*
{indent}Will set outline of text on | off.{indent}
*overprint on | off*
{indent}Will set overprint of graphics on | off.{indent}
*dash* _dash1 space1 dash2 space2_ etc...
{indent}Will set line plotting in dash mode according to the dash pattern. Ref. [PostScript Language Reference Manual (third edition)|http://www.adobe.com/products/postscript/pdfs/PLRM.pdf] p.666.{indent}
*pattern open* _x\_size y\_size_
{indent}Open a pattern of size _x\_size y\_size_.
The postscript commands making up the pattern should be coded hereafter.{indent}
*pattern close* _name_ \[_rotation_]
{indent}Close the active pattern and name it _name_. Optionally use a rotation.{indent}
*pattern* _name_
{indent}Use pattern with name of pattern _name_.{indent}
h2. Examples
h3. Ex.1: Producing a postscript plot
{noformat:|borderWidth=1|bgColor=#eeeeee} |
Name
psc — PostScript plotting
Syntax
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
psc lwf | slwf | on | off | open | close | scp | fontsize | vie | align | status | prot | col | font | fill | rec | stroke | expand | talign | txt | axes | curtxt | pos | line | chf | utmgrid | moveto | lineto | win | devcm2user | arc | ssc | bmp | jpeg | cross | newline | clip | linestyle | linewidth | outline | dash | overprint | ticml | pattern |
Description
PostScript plotting, settings and commands.
The plotting system in Geocap called dplot is applying these commands to plot maps with a high carthographic standard.
PostScript is a state system which means that a specific setting is valid until a new setting is applied.
Note that it is possible to use psc com to write native PostScript commands. Check the PostScript Language Reference Manual (third edition).
Arguments
lwf line_width_factor
slwf line_width_factor
open file_name
close
scp scale_in_meters_x scale_in_meters_y rel_portion_of_horizontal_margin_left rel_portion_of_vertical_margin_bottom
fontsize fontsize [cm]
vie x_lower_left y_lower_left x_upper_right y_upper_right [cm]
align [top | bottom | left | right | center]
status
prot [reset] | x_position y_position rotation_angle [cm]
col red blu gre
font font_number
fill
stroke
rec x_lower_left y_lower_left x_upper_right y_upper_right
expand hor | ver | inside | outside | cover
txt text
curtxt curve_text [size size] [rot rot_angle] [use] [bsp] [palign align_x align_y]
axes n | e | w | s [incrx | incry | factorx | factory | offsetx | offsety]
talign x_position y_position
ticml tic_mark_length
pos x_position y_position cm
line x_start y_start x_stop y_stop
chf crosshair_factor
utmgrid delta_x delta_y cross_size
moveto x_start y_start
lineto x_stop y_stop
win x_lower_left y_lower_left x_upper_right y_upper_right [aoi]
devcm2user
user2devcm
arc x_center y_center radius start_angle stop_angle
ssc
bmp | jpeg | jpg file_name | use
cross x_center y_center size
newline
clip x_lower_left y_lower_left x_upper_right y_upper_right
linestype line_style
linewidth line_width
outline on | off
overprint on | off
dash dash1 space1 dash2 space2 etc...
pattern open x_size y_size
pattern close name [rotation]
pattern name
Examples
Ex.1: Producing a postscript plot
No Format | ||||
---|---|---|---|---|
| ||||
psc format a4 ;# specify format win demo ;# demo window: 450000 460000 6450000 6460000 1000 4000 psc open c:/users/olav/psfile.ps ;# open output file psc on ;# set postscript on psc vie 0.1 0.1 0.9 0.9 ;# specify viewport in viewport coordinates mak ran 11 ;# make 11 random points grp 99 99 ;# grid surface 99 x 99 elements sma i 250 can ;# spline map and annotate contours psc off ;# turn off postscript sma i 250 sav ;# spline map and sav contours psc on ;# turn on postscript mak glc ;# get largest cell col red ;# set red color pol ;# draw the line psc fontsize 1.5 cm ;# set font size psc col .3 .2 .6 ;# set color psc curtxt "Largest contour" palign 0 0 ;# plot text to follow curve with no alignment psc pos 450200 6461000 ;# specify position psc fontsize 2.8 cm ;# set font size psc col .5 .9 .9 ;# set color psc txt "This is a text" ;# plot text psc outline on ;# activate outline psc lwf 2 ;# set line width factor psc col 0 0 0 ;# color black psc txt "This is a text" ;# plot outline around text psc outline off ;# outline feature off psc lwf 1 ;# reset line width factor col gre ;# set green color dra dwa ;# dra data window area psc fontsize 0.5 cm ;# set font size psc ticml 0.15 ;# set tic mark length (in cm) psc axes ns incrx 2000 incry 2000 ;# draw axes in north and south psc axes ew incrx 2000 incry 2000 ;# draw axes in east and west psc close ;# close postscript {noformat} The above example produces this image. !att:_img_ref^psc.png! _Simple postscript plot to demonstrate principles_ h3. close postscript |
The above example produces this image.
Simple postscript plot to demonstrate principles
Ex.2:
...
Applying
...
pattern
...
in
...
a
...
postscript
...
plot
...
No Format | ||||
---|---|---|---|---|
| ||||
psc format a4
psc open "C:/Users/Olav/test.ps"
psc on
rea block.pol
ssc
psc ssc
################## Make pattern
# norwegian flag
psc com 100 100 scale
psc pattern open 30 24
psc col 1 1 1
psc rec 0.1 0.1 22.1 16.1
psc fill
psc col 0.9372 0.1686 0.1765
psc rec 0.1 0.1 6.1 6.1
psc fill
psc rec 0.1 10 6.1 16.1
psc fill
psc rec 10 0.1 22.1 6.1
psc fill
psc rec 10 10 22.1 16.1
psc fill
psc col 0 0.1568 0.4078
psc rec 0.1 7.1 22.1 9.1
psc fill
psc rec 7.1 0.1 9.1 16.1
psc fill
psc pattern close Norway
psc com 0.01 0.01 scale
################## End pattern
# Save in workspace block
mhi block
psc pattern Norway ; # apply pattern
dis fill ; # display with fill option
psc pattern stop
mlo block
col 0 0 0
pol
psc close
{noformat}
|
The
...
above
...
example
...
produces
...
this
...
image.
...
Demonstration of pattern
See also
pol - Polygon type display, map - Map display, sma - Spline map