从一堆坐标生成一个SVG文件

时间:2016-12-08 00:50:53

标签: image svg

我有一个文本文件,其中包含许多由x和y中的4个顶点坐标定义的矩形。有没有办法可以轻松生成一个SVG文件来绘制所有这些矩形,这样我就可以在像inkscape甚至浏览器这样的浏览器中打开它来查看排列。理想情况下,如果可以用50%的透明度绘制矩形,那么我可以看到重叠,这将非常棒。

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:2)

你可以使用awk或gawk ......

假设您的坐标文件看起来像这样(coords.txt):

5,3,20,12
15,8,27,22
8,2,12,8

你可以用awk把它变成svg ......

(script.awk)

BEGIN {print "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\">"}
  {print "<rect x=\""$1"\" y=\""$2"\" width=\""$3-$1"\" height=\""$4-$2"\" fill=\"rgb("int(rand()*255)","int(rand()*255)","int(rand()*255)")\" opacity=\"0.5\"/>" }
END {print "</svg>"}

调用脚本,运行

awk -F "," -f script.awk coords.txt > rects.svg

输出将如下所示:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
    <rect x="5" y="3" width="15" height="9" fill="rgb(60,74,215)" opacity="0.5"/>
    <rect x="15" y="8" width="12" height="14" fill="rgb(38,149,49)" opacity="0.5"/>
    <rect x="8" y="2" width="4" height="6" fill="rgb(206,44,123)" opacity="0.5"/>
</svg>