开罗的笔画对齐

Posted

技术标签:

【中文标题】开罗的笔画对齐【英文标题】:Stroke alignment in Cairo 【发布时间】:2018-12-26 15:59:52 【问题描述】:

许多图形包允许用户选择他们想要在形状周围绘制区域边框的位置;沿着形状的内部、外部或中心。例如,这显示了同一个正方形,其边框分别沿中心、内部和外部绘制:

我可以根据笔划的宽度放大/缩小路径,但我想先检查一下是否有内置支持。

我正在使用 Ruby,但如果有用于此的 C 方法,它很可能在 Ruby 绑定中也可用。

在开罗,有没有一种方法可以在路径的外部或内部而不是沿着中心绘制笔触?

【问题讨论】:

【参考方案1】:

不,没有内置这样的方法。

您可能会使用一个临时表面来近似此情况,该表面后来用作遮罩。例如,要做“外部”,你首先用“透明”填充一个临时表面,然后用你想要的线宽两倍的“不透明”来描边,最后用“透明”填充形状以去除内部线宽。然后可以将生成的表面用作遮罩。

“内部”类似,但有一个额外的技巧:同样,透明表面和线条宽度的两倍。现在需要删除此笔划的外部部分。为此,需要一条具有奇偶弯曲规则的路径。向此路径添加一个表面大小的矩形会反转路径,从而允许通过填充移除外部的所有内容。 对于非零缠绕规则...我没有任何直接的想法(嗯,另一个临时表面,然后通过使用运算符 SUBTRACT 的全表面绘制反转?)。

【讨论】:

【参考方案2】:

要在路径内描边,将路径设置为剪切区域,然后描边;位于剪辑区域之外的任何笔画部分都将不可见...

【讨论】:

以上是关于开罗的笔画对齐的主要内容,如果未能解决你的问题,请参考以下文章

人眼视觉误差与字形

flex多行多列两端对齐,列不满左对齐

html中怎么将标签左对齐,而文本框右对齐的方法

4096个字节是4K对齐了吗?

iOS的UILabel设置居上对齐,居中对齐,居下对齐

实现img 图片与文字对齐,图标与标题对齐