我試圖將SVG路徑轉換爲節點中的點列表。我使用elementtree來解析SVG文件。將SVG路徑轉換爲線段
d是路徑的定義,getPos只是將一個「x,y」變成一個帶有x和y的對象,doLine只是將該座標添加到列表中。
d = path.get('d')
words = d.split(' ')
oldPos = undefined
startPos = undefined
for i in [0..words.length]
word = words[i]
if word == 'm' or word == 'M'
oldPos = getPos(words[i + 1])
startPos = getPos(words[i + 1])
i += 1
else if word == 'l' or word == 'L'
console.log('done nothing...')
else if word == 'z' or word == 'Z'
doLine(oldPos, startPos)
else if word
pos = getPos(word)
doLine(oldPos, pos)
oldPos = pos
目前,這似乎不能正常工作。
我知道我的路徑永遠不會有曲線,所以我不必擔心這一點。
我不確定SVG標準,所以如果有人能幫助我,那將是很多的感謝。
我真的沒有在網上做這件事,是否有可能從獨立的node.js訪問這些功能? – 2012-02-01 21:18:46
你可以在這裏看到用C++編寫的底層mozilla路徑解析器代碼:http://mxr.mozilla.org/mozilla-central/source/content/svg/content/src/SVGPathSegListSMILType.cpp#319有幫助嗎? – 2012-02-01 21:33:05
這有幫助,謝謝。我會仔細看看。 – 2012-02-01 21:45:51