如何將現有向量節點沿斜線對齊
若要將現有向量節點沿斜線對齊,請用兩個固定參考點定義直線,再將其他節點移到直線上。若要精確定位,請計算節點座標並逐一輸入。若要互動式編輯,則可將每個節點吸附到暫時的直線參考路徑上。
本教學適合想在保留節點的同時,微調現有向量角色外框或細節的人。主要流程使用 Inkscape 的座標欄位;另一種方法則說明如何在 Affinity Designer 2 中吸附幾何圖形。兩種方法都不需要重建圖稿。
對齊節點前,先決定哪些位置必須固定
選擇兩個參考節點 A 和 B,定義所需的斜率。它們可能標示較大角色外框中一段直線的兩端。記下它們的座標,重新定位中間節點時保持不變。
接著,決定中間節點應如何移動。「沿直線對齊」描述的是目標位置,卻沒有指定移動方向。以下是三種實用的選擇:
| 定位規則 | 保留的內容 | 適用情況 |
|---|---|---|
| 保留每個節點的 X 座標 | 既有的水平位置 | 節點位置已符合水平參考位置 |
| 保留每個節點的 Y 座標 | 既有的垂直位置 | 垂直位置比水平位置更重要 |
| 沿垂直方向投影到直線上 | 每個節點最短的移動距離 | 想消除節點相對於目標直線的側向偏差 |
即使所有結果節點都落在同一條直線上,這些規則仍可能產生不同結果。等距是另一種操作:只做對齊不會讓節點間距相等。Inkscape 的文件將水平或垂直對齊與等距分布分別說明。對齊與分布 — Inkscape 初學者指南
選取現有節點,不要移動整個形狀
在 Inkscape 中,按 N 或 F2 啟用節點工具,然後點擊現有路徑以顯示其節點。點擊要重新定位的特定節點。節點工具可編輯路徑幾何,包括節點位置,以及控制相鄰線段的控制柄。使用節點工具編輯路徑 — Inkscape 初學者指南
編輯前,請先儲存工作副本,並記下哪些節點屬於目標區段。實用的紀錄應包含 A 和 B 的座標、每個待移動節點的原始座標,以及你選擇的定位規則。這樣可讓操作重複執行,也能清楚比較結果。
以下座標流程請一次只選取一個節點。Inkscape 的節點工具控制項中提供 X 和 Y 欄位,以及座標單位選擇器。一次選取一個節點,可明確指定要變更的座標。節點工具選項 — Inkscape 初學者指南
若工作是調整單一路徑內的節點,請避免使用物件對齊命令。Inkscape 的文件指出,對齊流程會因目前啟用的是節點工具或選取工具而有所不同。對齊與分布 — Inkscape 初學者指南
計算精確位置,同時保留水平位置
若斜線通過 A = (Ax, Ay) 和 B = (Bx, By),水平座標為 x 的點要位於直線上,必須符合:
y = Ay + (x − Ax) × (By − Ay) / (Bx − Ax)
當每個節點的 X 座標必須保持不變時,這個方程式提供了實用的對齊方法。這是幾何計算,並非編輯器中的特殊命令。
以下座標僅為明確舉例,且皆使用相同的文件單位:A = (20, 30),B = (100, 70)。兩點的水平差為 80,垂直差為 40,因此直線方程式為:
y = 30 + (x − 20) × 0.5
假設有三個現有中間節點,其座標如下。保留它們的 X 值後,目標座標如下:
| 節點 | 原始位置 | 目標位置 |
|---|---|---|
| P1 | (40, 50) | (40, 40) |
| P2 | (60, 40) | (60, 50) |
| P3 | (80, 65) | (80, 60) |
在 Inkscape 中套用目標座標:
- 使用節點工具,單獨選取 P1。
- 確認座標單位與計算時使用的單位一致。
- 將 X 保持為 40,並將 Y 輸入為 40。
- 單獨選取 P2,將 Y 輸入為 50,並將 X 保持為 60。
- 單獨選取 P3,將 Y 輸入為 60,並將 X 保持為 80。
- 對照記錄的座標,重新檢查 A 和 B。
現在這三個節點都落在由未變動的參考點定義的直線上。本例中水平間距相等,是因為選用了這些示範座標;對齊計算本身不會產生等距效果。
若目標直線是垂直線,Bx − Ax 會等於零,因此這個公式無法保留 X。對於垂直線,請將每個目標節點的 X 設為 Ax。對於接近垂直的直線,保留 Y 可能更實用,因為微小的水平差異可能對應到大幅度的垂直移動。
若要改為保留 Y,請使用 x = Ax + (y − Ay) × (Bx − Ax) / (By − Ay)。這個版本要求 By 和 Ay 不同。請從相同的編輯器欄位與單位系統讀取所有座標,不要混用文件座標與從螢幕截圖量取的數值。
若要讓移動距離最短,請使用垂直投影
若不必保留 X 或 Y,垂直投影會找出無限延伸的目標直線上距離最近的點。當中間節點稍微偏離大致正確的斜線區段時,這種方法很實用。
對於既有節點 P = (Px, Py),先計算直線方向:
dx = Bx − Ax
dy = By − Ay
接著計算節點沿直線的位置與投影座標:
t = ((Px − Ax) × dx + (Py − Ay) × dy) / (dx² + dy²)
Qx = Ax + t × dx
Qy = Ay + t × dy
使用相同的示範參考點和原始節點,可得:
| 節點 | 原始位置 | 垂直投影目標位置 |
|---|---|---|
| P1 | (40, 50) | (44, 42) |
| P2 | (60, 40) | (56, 48) |
| P3 | (80, 65) | (82, 61) |
逐一為每個節點輸入兩個目標座標。這些數值已用一段簡單且確定性的 Python 計算進行檢查。它們是幾何示範值,並非從特定角色檔案測量而來。
有兩點需要注意。第一,A 和 B 必須是不同的點:若參考點重合,分母會是零,無法定義直線。第二,這項計算會投影到無限延伸的直線上。若 t 值介於 0 和 1 之間,結果會落在 A 和 B 之間;若超出這個範圍,結果則會落在端點之外。
如果投影後的節點落在目標區段之外,移動前請先檢查該節點。自動將它強制移到最近的端點會使節點重疊,也會改變預期位置。單靠公式也無法處理節點沿連接順序來回折返的既有路徑。
在 Affinity Designer 2 中將節點吸附到斜向參考路徑
若只需處理少數節點,使用暫時的參考路徑可能比計算座標更方便。Affinity Designer 2 文件介紹了節點工具選項 吸附到所選曲線的幾何圖形,可將移動中的節點吸附到所選曲線的路徑或節點。其節點吸附控制項獨立於全域吸附設定。節點工具 — Affinity Designer 2 說明
以下流程將這項文件所述的功能用於此對齊工作:
- 建立一條獨立的直線參考曲線,使其斜率符合需求,並穿過兩個參考位置。
- 使用節點工具選取圖稿曲線和參考曲線。
- 在上下文工具列中啟用 吸附到所選曲線的幾何圖形。
- 每次只選取一個圖稿節點,將它拖向參考曲線。
- 確認節點已吸附到預期的參考幾何位置。
- 對其餘節點重複操作,並保持兩個參考節點不動。
- 檢查結果後,移除暫時曲線。
參考線段要夠長,才能涵蓋所有預定位置。若節點靠近端點,請檢查它是否落在端點上,而非預期的內部位置。
將節點拖到路徑上可設定其在路徑上的目標位置,但此操作本身不會指定垂直投影,也不會保留 X 或 Y。若這些條件很重要,請使用計算所得的座標。Affinity Designer 2 也有文件說明如何透過「轉換」面板重新定位個別節點。編輯曲線與形狀 — Affinity Designer 2 說明
若外框看起來仍是彎曲的,請檢查貝茲控制柄
節點對齊後,可見外框不一定會變成直線。貝茲控制柄會控制連接線段的形狀,因此即使線段兩端的節點都落在目標直線上,線段仍可能向外彎離該直線。使用節點工具編輯路徑 — Inkscape 初學者指南
請分別檢查每一個連接線段。若工作只要求錨點位置對齊,請保留預期的曲線形狀。若該區段本身必須筆直,也需要適當調整控制柄:使用直線線段,或將相關控制點放在目標直線上,避免產生過度彎曲。
在兩個參考節點處,變更節點類型前請先考慮相鄰外框。Inkscape 的尖角節點允許獨立移動控制柄;平滑節點則會讓兩個控制柄穿過節點保持對齊。對稱節點還會讓控制柄到節點的距離相等。這些限制會影響直線區段與相鄰曲線的銜接方式。關於節點類型 — Inkscape 初學者指南
若直線區段以角點接上曲線,獨立控制柄會很實用。若需要流暢銜接,請保留所需的切線方向。將所有節點都改成相同類型,可能會不必要地改變角色周圍的細節。
移除參考線前,請先確認對齊結果
請依照一開始選擇的方式檢查結果:
- 參考點: A 和 B 仍維持記錄的座標。
- 定位規則: 節點保留 X、保留 Y,或位於計算所得的垂直投影目標位置。
- 範圍: 每個中間節點都位於預定區段內。
- 路徑順序: 相連節點依預期順序經過該區段。
- 線段形狀: 曲線與銜接方式符合所需外框。
- 精確度: 座標四捨五入沒有造成可見偏差。
在計算範例中,每組對齊後的座標都應符合 y = 0.5x + 20,誤差在輸入時採用的精確度範圍內。這提供了獨立於外觀的數值檢查。也請以角色預定的顯示尺寸檢視,確認修改後的區段仍符合周圍設計。
固定兩個參考點,審慎選擇移動規則,並在定位節點後檢查連接線段。這樣就能以可重複的方式對齊現有斜線區段,同時保留對角色其他外框部分的控制。
