本文轉自: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曲線。