Table of Contents
本文转自:https://blog.csdn.net/u012632138/article/details/82022943
说明:
了解什么是路径构造,了解什么是路径显示,掌握相应操作符。
PDF reference1.7.pdf 4.4
定义:
- 路径:用于定义画线,填充的区域,指定剪切其它图像的边界。
- 连接:一对线段被称为是连接的,仅当他们是连续的,第二条线段开始在第一条线段结束的地方。
- 闭合:h操作符明确的将子路径的最后一点与开始点连接。
- 当前剪切路径:图形状态包括一个当前剪切路径定义了当前页面的剪切边界。
操作符:
- 路径构造操作符:定义了路径的几何布局。
- 路径显示操作符:结束一个路径对象,并将路径对象绘制到当前页上。
- 剪切路径操作符:定义在路径绘制操作符之前,路径构造操作符之后,用于剪切边界。
路径构造操作符:
- m或re开始新的路径。
- 当前路径:即当前正在构造的路径:
-
当前路径不被保存和恢复,即不能使用qQ。
-
PDF路径是内部对象,不会在页面上做任何标记。
-
如果当前路径是空,那么当前点是未定义的。
-
操作数 | 操作符 | 描述 | |
---|---|---|---|
x y | m | 开始一条新的子路径并移动当前点到 (x,y) 点。 | |
x y | l | 追加一条直线从当前点到点 (x,y) | |
x1 y1 | c | 追加一条 3 次方 Bezier 曲线到当前路径。 | |
x2 y2 | v | 追加一条 3 次方 Bezier 曲线到当前路径 |
|
x1 y1 | y | 追加一条 3 次方 Bezier 曲线到当前路径 控点: (x1, y1) 和 (x3, y3) | |
- | h | 通过画一条直线段从当前点到起始点 , 闭合当前子路径 。 | |
x y width height | re | 追加一个矩形到当前路径 |
路径显示操作符:
结束一个路径对象 ,并用指定的风格将路径显示 。最主要显示操作符有 S 和 f。
操作数 | 操作符 | 描述 |
|
---|---|---|---|
- | S | 绘制路径。 |
|
- | s | 闭合并绘制路径。等价于( h S ) |
|
- | f | 填充路径,使用非 0 环绕数规则来决定填充区域。 | |
- | F | 等价于 f ,一般使用 f 。 | |
- | f* | 填充路径,使用奇偶规则。 | |
- | B | 填充并画路径 , 使用非 0 填充规则 , 相当于 (f S) | |
- | B* | 填充并画路径 , 使用奇偶规则,相当于 (f* S) | |
- | b | 闭合,填充,并画路径。使用非 0 规则来决定填充区域。相当于( h B ) | |
- | b* | 闭合,填充,并画路径。使用奇偶规则。相当于 (h B*) | |
- | n | 闭合路径,但既不填充,也不画路径。该参数不进路径绘制操作。主要用来改变当前剪切路径大小。 |
Stroking
操作符 : S
相关参数 :
- Line width
- Color or pattern
- Line Dash Pattern
- Line cap
- Line join & Miter limit
- Stroke Adjustment
Filling
操作符 : f
相关参数:
- 任何子路径填充前隐式闭合
- 非 0 环绕数规则
- 奇偶规则
非 0 环绕数规则
- 初始化环绕数到 0 。
- 从 P 点向外任意引一条射线。
- 每遇到一条与该线的交叉线,判断交叉线是否和这条直线方向相同,如果是,则环绕数加 1 ,如果不是,则环绕数减 1 。如果与该直线正交,则顺时针加 1 ,逆时针减 1
- 假如环绕数不等于 0 ,则点 P 在多边形内。
- 但是这个方法有局限性 , 不适合相交 , 或者选一条正切的射线 . 因为射线的方向是任意的 , 这个规则简单的选用射线并不碰到这些情况 .
奇偶规则
- 从图形中的任意一点 P 向外任意引一条射线。
- 简单计算与该射线相交线的数量。
- 如果这个数是奇数,则认为点在图形内。
剪切路径操作符
图形状态包含了一个当前剪切路径,该路径限制了显示操作符可以在页面内作图的范围。
操作数 | 操作符 | 描述 |
---|---|---|
- | W | 修改当前剪切路径用当前路径与当前剪切路径相交的区域 ,利用非 0 规则取得区域。 |
- | W* | 修改当前剪切路径用当前路径与当前剪切路径相交的区域 ,利用奇偶规则取得区域。 |
- n 操作符虽然不显示任何到页面上 ,但可用于建立剪切区域 。
- q Q 推荐使用 , 因为剪切区域是相交的 , 不可扩大 。 如果不保存当前属性 , 那么整个页面将受这个 clipping 的限制 。
- 0 0 10 10 re W n 就生成一个剪切路径 , 只显示这个矩形框里面的内容。
作业:
- 使用操作符设置:线宽为5,line join为Miter join,Line Cap Style为Round cap,Miter limit为2,line dash pattern为3单位实线,1单位空白,1单位偏移。
在适当的位置画出夹角小于60°的2段相连接线段。 - 使用图形状态参数字典设置:线宽为5,line join为Miter join,Line Cap Style为Round cap,Miter limit为2,line dash pattern为5单位实线,2单位空白,2单位偏移,stroke 透明度为50%,nonstroke透明度为50%
在适当的位置画出长为200,宽为200,nonstroke color为红色的矩形。 -
利用clipping写出以下效果的pdf。字体大小100。
4. 在适当的位置,利用c,v,y操作符画出3段bezier曲线。