C++中,只需编写SVG文本文件即可创建SVG文件吗?在Web开发中(考虑到PHP和JS(,可以将SVG作为其他DOM元素进行操作(除非我弄错了(。但是,我只想以该Web样式创建一个SVG(没有阅读,解析,...(。还是只下载一个库更好?
我想将任务的速度(计算和绘制图形(与我们在学校使用的 MatLab 进行比较,我需要一个简单的图形输出解决方案。
我的建议是使用矢量图形编辑器(如Inkscape(免费((设计图形。
然后,您可以在自己喜欢的文本编辑器中打开生成的SVG文件,并将文件的片段保存为字符串以插入到您自己的文件中: 例如,下面是用于绘制圆的文件的一部分:
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="opacity:0.1;fill:#008000;fill-opacity:1;stroke:#000000;stroke-width:0.26458332;stroke-opacity:1"
id="path10"
cx="43.534008"
cy="32.312469"
r="18.520834" />
</g>
我还会删除无关的信息,例如您不需要的inkscape:label
和inkscape:groupmode
,尤其是id=
,因为您想重用代码。然后将其中的部分保存在静态字符串中(或者更好地保存在数组或结构中(:
const string circleS0 = "<g id="circle1"><circle style="opacity:0.1;fill:#008000;fill-opacity:1;stroke:#000000;stroke-width:0.26458332;stroke-opacity:1" id="path10" cx="";
const string circleS1 = "" cy="";
const string circleS2 = "" r="";
const string circleS3 = "" /> </g>";
重要说明:SVG 格式需要大量双引号,不幸的是,这些双引号必须在 C++ 中转义(就像我上面所做的那样(。
现在,您创建一些变量,其中包含使它成为唯一圆的内容,您可以在所需的位置绘制:
string circleX = "43.534008";
string circleY = "32.312469";
string circleR = "18.520834";
最后,您需要按顺序输出所有部分,但我将其留给您C++技能。
如果没有库,这个例子可能看起来势不可挡,但我这样做是为了创建电缆装配图和文本网格(材料清单(,一点也不难。由于嵌入的图形,我什至在图纸的标题栏中包含客户的徽标。
我不确定我是否明白你在问什么。当然,您可以使用 c++ 编写 SVG 文件,但是如果没有库支持,您必须确保遵循正确的(类似 xml(结构。
如果你想让你的生活更轻松,请使用SVG++(http://svgpp.org/(。