使用SVG进行2D渲染和放大

lib*_*ako 7 svg point path zooming

我的任务是开发一种算法,将不同类型的曲线拟合到二维空间中的给定点序列上.

为了能够测试我的算法,我选择了SVG来显示结果.我有几个问题.

由于我的算法可能有非常不同的输入和输出,因此我必须能够放大查看生成的SVG文件!

但是SVG中的路径只能以一定的宽度显示.如果我放大,那么路径的宽度会变宽.我希望宽度在所有缩放级别为例如1像素.这有解决方案吗?

另外:SVG可以显示点吗?是的,简单,原始点.我发现它不能.

谢谢

Naa*_*aff 8

许多其他矢量格式(如PostScript和PDF)将允许您使用笔划宽度0作为"发际线"笔划.SVG不是这样.但是,如果您使用百分比笔画宽度,我认为您可以达到您想要的效果.有关详细信息,请参阅w3c SVG规范,但基本上,您应该可以执行以下操作:

stroke-width:"1%"
Run Code Online (Sandbox Code Playgroud)

无论缩放级别如何,都应该使用与边界矩形不变的1%的线宽来描绘曲线.

至于积分,SVG不支持它们.当我在过去完成此操作时(使用PostScript),我总是使用带有小红色圆弧来绘制一个小圆圈(如果您愿意,可以填充以制作圆点).


@Zoli:在您发表评论之后,我打算建议您研究一下PostScript,这样当我在SVG规范中遇到非缩放笔划矢量效果时,您可以使用细线笔划宽度:

vector-effect="non-scaling-stroke"
Run Code Online (Sandbox Code Playgroud)

根据规范,只需将其添加到曲线中,它应该对缩放不变.他们的示例使用line,但它也应该适用于您的曲线.