2015-12-31 25 views
4

我們所用的Appendif F : Implementation Requirements > F.6 Elliptical arc implementation notes閱讀以下內容:W3C爲什麼要求刪除空的弧?

如果端點(X1,Y1)和(X2,Y2)是相同的,那麼這是相當於完全省略橢圓弧段。

這在我看來很奇怪,原因如下:

  • 如果空段是C和S之間,當我們放棄這部分的S的解釋。
  • 此規則與其他規則不一致:爲什麼不省略空行或空曲線,而忽略空弧?
  • 瀏覽器(Chrome,Firefox)不遵循此規則。例如,如果我們從M 0 0 C 0 10 10 10 10 0 A 10 10 0 0 0 10 0 S 20 -10 20 0中刪除空圓弧,我們將獲得一個非等價路徑M 0 0 C 0 10 10 10 10 0 S 20 -10 20 0

enter image description here

所以我的問題是:我們是否有,如果我們寫的SVG庫尊重這個規則?

回答

2

瀏覽器遵循規則就好了。 「省略」並不一定意味着完全無視它的存在。他們可以省略渲染,但在解釋S和T路徑命令時不應忽略其座標值。

+0

「完全省略橢圓弧段」非常精確,不是「省略渲染」。例如,我們可以將規則「省略渲染」應用於任何其他0長度段,例如「l 0 0」。但爲什麼這個特定的規則只適用於弧? – Kpym

+0

檢查[此規則](http://www.w3.org/TR/SVG/implnote.html#PathElementImplementationNotes)是否爲零長度路徑。它們不被「省略」 – Kpym

+0

您鏈接到的規則正在討論渲染零長度行的結束標記。我指的是不渲染退化(零長度)路徑段本身。 –

相關問題