我一直在尋找一種從 a 中獲取點(diǎn)SVG并將其應(yīng)用于Path2D畫家的方法。解析任務(wù)不是我的重點(diǎn),問題是了解這些點(diǎn)如何在畫布中工作以及如何將其應(yīng)用于Path2D.例如,考慮我有這個SVG標(biāo)簽:<svg> <path d = " m 51.688 5.25 c 10 20 30 40 50 60 z"> </path></svg>這只是將抽屜移到第一個點(diǎn),使用這些點(diǎn)繪制一條曲線并關(guān)閉路徑。我試圖將其應(yīng)用于這樣的Path2D:float x = 200, y = 200;Path2D.Float painter = new Path2D.Float();painter.moveTo(51.688+x, 5.25+y);painter.curveTo(10+x, 20+y, 30+x, 40+y, 50+x, 60+y);painter.closePath();由于來自的點(diǎn)SVG是親戚,因此我將 x 和 y 字段相加為點(diǎn),但我得到了這個結(jié)果: 在此處輸入圖像描述這只是一個小測試來檢查繪圖是否有效,我需要將它用于更復(fù)雜的路徑,因?yàn)槲倚枰L制多達(dá) 50 個 SVG 路徑Batik不是一個好方法,考慮到只渲染一個 svg 圖像太慢了我的項(xiàng)目。然后我需要知道的是是否可以像這樣直接使用它的點(diǎn)來繪制 SVG 路徑。如果是,如何解決我的想法?如果沒有,如何繪制路徑的好方法?ps:我的目標(biāo)是swing。
1 回答

墨色風(fēng)雨
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個贊
如果您想了解 SVG 路徑命令的工作原理,最好的來源是閱讀SVG 規(guī)范。那里都解釋得很清楚。我不知道你為什么先來這里問。
小寫路徑命令(如c)是相對的。它們的坐標(biāo)應(yīng)被視為距最后一個路徑段的終點(diǎn)的偏移量。
所以相當(dāng)于你的路徑描述應(yīng)該是:
painter.moveTo(51.688, 5.25);
painter.curveTo(51.688 + 10, 5.25 + 20, 51.688 + 30, 5.25 + 40, 51.688 + 50, 5.25 + 60);
painter.closePath();
(為了清楚起見,我在這里省略了你的x和參數(shù))。y
添加回答
舉報
0/150
提交
取消