为什么 Inkscape 中的基本形状不是矢量路径?

平面设计 墨景 向量
2022-02-12 17:54:08

我正在使用 Inkscape 和矢量图形。我的困境如下:

我首先假设任何矢量对象/图像本质上是带有锚点(节点)和句柄的矢量路径(直的或弯曲的),以改变节点之间的边缘。弯曲的路径称为贝塞尔曲线,而不是直线路径。也就是说,在 Inkscape 中创建的简单矩形称为基本形状,它只能重新缩放(它的边不能修改,除非我们使用命令 Object to path 将其转换为矢量路径)。但是矩形(或任何基本形状)不也是一个矢量对象吗?因此,它不应该是带有我们可以调整的锚点和句柄的矢量路径吗?我们在 Inkscape 中创建的所有东西(圆形、矩形等),包括基本形状,不就是一个相当于矢量路径的矢量对象吗?

1个回答

不幸的是,你的假设是错误的。对不起。Inkscape 不仅仅是一个矢量图像编辑器,它还是一个 SVG 编辑器。SVG 是一种 XML,基本上只是代码。

一些 SVG 形状实际上并不是路径——它们是这样的 SVG 元素:

<rect x="21.1" y="54.6" width="34.3" height="18.6"/>
<circle cx="38.2" cy="103" r="12.9"/>
<ellipse cx="38.2" cy="142" rx="16.4" ry="7.5"/>

正如您已经说过的,您当然可以根据需要将这些转换为路径。在 Inkscape 中选择一个形状并执行路径 > 对象到路径。这会将形状转换为实际的矢量路径,如下所示:

<path
       id="rect846"
       d="m 21.061296,54.616585 h 34.26923 v 18.5625 h -34.26923 z" />
<path
       id="path870"
       d="M 51.046873,103.16467 A 12.850962,12.850962 0 0 1 38.195911,116.01563 12.850962,12.850962 0 0 1 25.34495,103.16467 12.850962,12.850962 0 0 1 38.195911,90.313711 12.850962,12.850962 0 0 1 51.046873,103.16467 Z" />
<path
       id="path872"
       d="m 54.616585,141.71754 a 16.420673,7.4963942 0 0 1 -16.420674,7.4964 16.420673,7.4963942 0 0 1 -16.420673,-7.4964 16.420673,7.4963942 0 0 1 16.420673,-7.49639 16.420673,7.4963942 0 0 1 16.420674,7.49639 z" />

如您所见,在某些情况下 SVG 元素更受欢迎。例如,它可以帮助减少 SVG 的文件大小,而且 SVG 元素是可编辑的,因为您可以轻松更改它们的参数,如果您只有路径,这并不是那么容易。

在 Inkscape 中将形状保留为形状而不是转换为路径还有其他好处。圆可以编辑成段,多边形和星形可以用控件调整,矩形有可调整的弯角等。如果将这些转换为路径,这些功能就不再可能了。

例子

在此处输入图像描述