当我更改矩形的笔画宽度时,宽度和高度也会发生变化。我怎样才能防止这种情况发生?
在不改变矩形宽度和高度的情况下改变笔画宽度
在我看来,您问题中的“矩形宽度”可能意味着两件事,导致两个不同的答案;我不清楚你到底要的是哪一个。你想让哪一个保持不变:
- 矩形的视觉尺寸,即从左外线边缘到右外线边缘。
- 矩形的标称(几何)尺寸,即从左边线的中心到右边线的中心。
如果您从事平面设计,您可能更关心 (1),如果您从事技术绘图,则可能更关心 (2)。默认情况下,Inkscape 似乎将 (1) 显示为对象的宽度(例如,在工具栏中的“W:”字段中)。这里已经给出的答案表明了如何保持这个视觉大小(1)不变。
但是,如果您真的对 (2) 感兴趣,Inkscape 也可以将其显示为宽度。为此,请转到 Preferences -> Tools 并将“Bounding box to use”设置为“Geometric bounding box”而不是“Visual bounding box”。现在几何尺寸 (2) 将由 Inkscape 指示。您现在可以根据需要更改线宽,并且指示的矩形宽度不受影响。
在 InkscapeScaling and transform objects (F1)
模式下,顶部工具栏上的标签后面有四个切换按钮Affect:
。第一个有工具提示说明When scaling objects, scale the stroke width by the same proportion
。将其关闭,然后您可以在不更改笔画宽度的情况下调整矩形的大小。
假设您正在谈论一个相对较小的变化:
这样做的原因是带有笔划的矩形是基于一组无限小的线条(红色),然后配备笔划(黑色),使这些线条位于笔划的中间。
如果增加笔划的大小,线条(红色)的位置是固定的,因此您也会稍微增加整个对象的大小(增加笔划宽度的一半)。
我不知道直接防止这种情况的方法,但是您可以在更改笔画宽度后手动重置矩形的大小。最简单的方法如下:
- 选择矩形。
- 复制它(Ctrl+ C)。
- 更改笔画宽度。
- 粘贴 → 粘贴大小(如果您关心将大小保留到最后一位,您可能需要重复一次或两次)。
听起来你所要求的与box-sizing:border-box
CSS 中的类似。SVG 中没有此属性的类比。
Inkscape 确实有针对此问题的内置解决方法。解决方法是尝试重新调整对象的大小,以便结果就像笔触向内移动一样。这是一个一次性的功能,因此在您调整对象大小时,您必须再次执行此操作。它还要求您提前计划您的尺寸。
- 绘制一个笔触宽度为 5px 的矩形。
- Ctrl用+复制它D并将其移至相应大小。
- 在您的副本中,将您的边框更改为 10 像素。
- 选中副本后,单击
Path > Inset
。
如果您比较两个矩形的大小,您会发现它不起作用!原因是假想的边界框。因此,当您更改为 10px 边框的插入时,它会将对象的大小减小(w / 2) + 1
px。
也就是说,要扩大一个5px的边框,可以把它改成9px用inset一次,把它改成13px用inset两次,把它改成17px用inset 3次,等等。你不能只选一个任意值,您必须根据当前边框大小增加边框。
这显然很难用。Wrzlprmft 的回答中描述了一种更可靠的技术。