以换行符作为语句的分隔符
以空格作为参数和符号的分隔符
以’%’作为注释行开始的标志
所有字符均使用ansi编码
拓展名’ps’/’eps’
采用操作数在前,操作符在后的结构。有多组操作数时从右往左按堆栈顺序
方括号表示数组。
圆括号表示字符串。
PostScript采用的坐标系以左下角为原点,水平向右为x轴正方向,水平向左为y轴正方向。
pt是PostScript里的基本长度单位,1英寸为72pt,相当于屏幕的96个像素。因此,可以认为3个pt和4个像素大小相当。
PostScript通常情况下默认的页面大小是A4大小。
设置线宽(默认为1)
设置颜色(默认为0,0为黑,1为白)
设置灰度
移动到
由所在点构造线段路径到(x, y)
构造以(x, y)为圆心,以r为半径,半径辐角从arc1到辐角arc2的圆弧路径
以当前位置开始,(x1, y1)为起点, (x2, y2)和(x3, y3)为控制点, (x4, y4)为终点,构造三次Bezier曲线路径
(x1, y1)可省略,此时默认为当前笔刷所在位置
由所在点构造线段路径到相对坐标
以当前位置开始,(x1, y1)为起点, (x2, y2)和(x3, y3)为控制点, (x4, y4)为终点,相对坐标构造三次Bezier曲线路径
(x1, y1)可省略,此时默认为当前笔刷所在位置
用当前的线宽和颜色
设置线的末端形状(默认为1,矩形末端;2为圆形末端)
设置线的连接的形状(默认为1,矩形连接;2为圆形连接)
以当前颜色填充闭合路径
开始一段闭合路径
结束闭合路径
改变页面大小
例: <</PageSize [400 300]>> setpagedevice
在变换前,保存当前的坐标系
在画完变换后下坐标系的图形后,恢复当前坐标系
后面所画的图形都向右平移xpt,向上平移ypt
后面所画的图形都以(0, 0)点为轴心逆时针旋转角度angle
后面所画的图形都在x方向上变为原来的s1倍,在y方向上变为原来的s2倍
后面所画的图形上的点都以下面的变换的值确定新位置:
Post Script支持英文字母,希腊字母和数学公式。
所有数学公式的符号都是由ascii码表示。
设置字体,参数为/Times(用来显示TimeNewRoman英文字体)或者/Symbol(用来显示希腊字母)。
设置字体大小
选中刚刚设置的字体
显示字体
例如,在画图区的左右角用16号字Times new roman显示字符串”Post Script”可以表达为:
/Times findfont
16 scalefont
setfont
0 8 moveto
(Post Script) show
在Postscript语言里,颜色渐变用填充模板(Shading Pattern)实现。
颜色渐变填充模板有很多种。其中三角形网格是最简单的,也是用起来最方便的。
Shading Pattern用双书名号(<<>>)建立结构体。
定义宏替换可以使用反斜杠加宏名最后以def结束。
例如要画一条竖直的彩虹颜色条,可以这样定义竖直颜色填充模板:
/VerticalColorBar
<<
/PatternType 2
/Shading
<<
/ShadingType 5
/ColorSpace /DeviceRGB
/VerticesPerRow 2
/DataSource
[
0 80.5 0 0
1 80.5 0 0
0 71 0 0
1 71 0 0
0 51 1 0
1 51 1 0
0 30 1 1
1 30 1 1
0 10 0 1
1 10 0 1
0 00 0 0.5
1 00 0 0.5
]
>>
>>def
其中VerticalColorBar是宏名,前面加反斜杠表示这是个宏定义,后面用def表示宏定义结束。下面用这个宏定义画一个竖直矩形:
newpath
10 10 moveto
60 10 lineto
60 410 lineto
10 410 lineto
closepath
VerticalColorBar [10 0 0 50 10 10] makepattern
setpattern
fill
需要注意的是,在makepattern前面要有个矩阵,因为前面定义的填充模板不一定正好在所要填充的模板上。
即使所定义的填充模板与所要填充的区域正好重合,还是需要在makepattern前加一个单位矩阵,因为这是makepattern必须有的参数。
通过矩阵,还可以实现对填充模板的变换。例如,想要把前面的模板做成一行彩色字的填充,可以使用下面的代码
/Times findfont 32 scalefont setfont
0 16 moveto
VerticalColorBar [0 48 -24 0 192 0] makepattern
setpattern
(Hello World!) show
上面的代码相当于把定义的填充模板逆时针旋转了90度,因此可以看出把“上红下蓝”的填充模板变成了“左红右蓝”的字体填充。
https://baike.baidu.com/item/PostScript/2192822