是否有方法將描邊路徑轉換爲使用javascript的形狀?是否有任何圖書館將此作爲內置功能提供?使用javascript將描邊路徑轉換爲形狀
我知道Illustrator具有此功能,因此可能的解決方案是將SVG圖像複製到屏幕上並將其移至Illustrator,但如果可以這樣做,是否會丟失所有存儲爲屬性的關聯元數據?
是否有方法將描邊路徑轉換爲使用javascript的形狀?是否有任何圖書館將此作爲內置功能提供?使用javascript將描邊路徑轉換爲形狀
我知道Illustrator具有此功能,因此可能的解決方案是將SVG圖像複製到屏幕上並將其移至Illustrator,但如果可以這樣做,是否會丟失所有存儲爲屬性的關聯元數據?
使用在聖拉斐爾Element.getTotalLength()
和Element.getSubpath()
功能與衝程寬度和衝程dasharray在一個函數,路徑的屬性沿可能會得到的結果。
[I]有沒有辦法使用JavaScript將描邊路徑轉換爲形狀?
是的,有一種方法可以將SVG路徑筆劃轉換爲輪廓形狀。不幸的是,它不是SVG內置的預封裝函數。實現它的方式稱爲數學。您需要考慮貝塞爾曲線,斜接設置,線段,線連接和dasharrays。正如@inhan指出的,你可能會使用各種函數來幫助你,或者近似它,但是他們都不會爲你做數學。這是可能,但它不是在任何方式容易 ...在JavaScript中。
[W]有沒有辦法將svg圖像複製到屏幕上並將其移動到Illustrator中?
當然,這很容易。
但是,這對你有什麼好處?當然,這與您的D3.js可視化無關。
但是,如果你能做到這一點,你會失去所有相關的元數據存儲爲屬性?
什麼是你在說什麼?如果您正在討論源代碼中的屬性,那麼如果您不將該屬性複製/粘貼到結果上,則只會丟失它。如果您正在討論綁定到在Web瀏覽器中運行的可視化文件的JavaScript數據,那麼課程如果您通過Adobe Illustrator進行往返,則將丟失數據。
你的問題對我來說意義不大,我有一種感覺,我必須錯過你的需求/目標。你在做什麼真的試圖完成?
我喜歡閱讀你的回覆! FWIW,當我說屬性時,我的意思是班級,身份證,數據,你有什麼 - 所以你說得對。我真的只是有興趣創建一個多筆畫的SVG路徑,一個顏色的筆畫和一個mouseover上的第二筆畫。我在SVG規範中找不到任何信息,所以我不得不考慮將描邊路徑轉換爲形狀,以便我可以再應用第二個筆劃。 – Alex
...雖然您還需要考慮筆劃線帽和線連接選項,並實施適當的斜接限制算法。你基本上說的是「是的,有一些功能可以幫助解決這個問題。」 – Phrogz
是的,我跳過了那些道具。我認爲亞歷克斯可以自己創建一個功能,也可以再問一次,如果某些東西不能按照公式本身的意圖工作。還是我自己寫了整個功能? – inhan