2013-04-07 152 views
7

當執行"s"(相對三次貝塞爾曲線)和"t"(相對二次貝塞爾曲線)時,隱式定義的控制點的座標是否被用作下一個相對座標的基礎?SVG路徑命令「s」和「t」

換句話說考慮以下立方米弧:

cubic arc example

  • cp當前點計算鏡像從以前的圓弧
  • ep明確的控制點最後一個控制點
  • ip隱含控制點
  • fp最後一點電弧

的T應當的ep用作鹼ip(隱式點)的相對座標,或者它們應該相對於cp(路徑的當前點)?

在官方文檔中,我發現這個不清楚,沒有使用相對座標的例子。

+0

你能否確認你在說貝塞爾曲線?你在問題中提到「弧」。 – 2013-04-07 09:07:20

+0

對不起......是的,我正在談論貝塞爾三次和二次弧(svg'路徑元素的's'和't'代碼) – 6502 2013-04-07 09:08:29

回答

2

documentation here指出大寫小號預計絕對座標,而較低的情況下小號預計相對座標。類似於T(絕對)和t(相對)。

編輯 - 相對於目前點 - 對不起,應該是明確的。連接於上述相同的文檔包括以下:

有關這些命令的相對版本中,所有的座標值在命令的開始是相對於當前點

+1

好的。但相對於什麼?到當前點還是隱式控制點?圖片中的「ep」座標是相對於「ip」還是「cp」? – 6502 2013-04-07 09:10:56

+0

所以你的意思是即使'fp'座標是相對於'cp'? – 6502 2013-04-07 09:13:15

+0

看編輯 - 文檔不清楚,但它*是*有... – 2013-04-07 09:17:09

8

規則是

  1. 當使用相對模式的座標在命令的開始是相對於當前點

  2. 在當多個座標,而無需重複基點每次重複

例如簡單的路徑

m 100,100 100,0 0,100 -100,0 0,-100 

描述之後被更新命令給出的命令「鏈」的情況下(100,100)至(200,200)

simple relative path

(所述l「線對」以紅色顯示命令是隱式的,如果多個座標被提供用於「m」個命令對)

要注意的是,相對「基地」爲座標在被更新的重要點每個轉折點。這在文檔中有些欺騙,因爲m命令的語法被描述爲接受(x,y)+作爲參數,所以讀者可能會被欺騙地認爲相對基礎只會在整個點序列的末尾改變。

現在讓我們考慮貝塞爾立方路徑

m 100,100 c 25,25 75,25 100,0 s 25,125 0,100 -75,-25 -100,0 

bezier arcs example

兩個紅色控制點被鏡像的最後一個控制點自動計算。紅色s命令是隱含的,因爲四個點跟在s之後。

對於三次Bezier弧命令,兩個控制點和終點是相對於同一個起點(它們與序列中的前一個不相對),但是在每個圓弧處更新相對座標計算的基點。