开罗的笔画对齐
Posted
技术标签:
【中文标题】开罗的笔画对齐【英文标题】:Stroke alignment in Cairo 【发布时间】:2018-12-26 15:59:52 【问题描述】:许多图形包允许用户选择他们想要在形状周围绘制区域边框的位置;沿着形状的内部、外部或中心。例如,这显示了同一个正方形,其边框分别沿中心、内部和外部绘制:
我可以根据笔划的宽度放大/缩小路径,但我想先检查一下是否有内置支持。
我正在使用 Ruby,但如果有用于此的 C 方法,它很可能在 Ruby 绑定中也可用。
在开罗,有没有一种方法可以在路径的外部或内部而不是沿着中心绘制笔触?
【问题讨论】:
【参考方案1】:不,没有内置这样的方法。
您可能会使用一个临时表面来近似此情况,该表面后来用作遮罩。例如,要做“外部”,你首先用“透明”填充一个临时表面,然后用你想要的线宽两倍的“不透明”来描边,最后用“透明”填充形状以去除内部线宽。然后可以将生成的表面用作遮罩。
“内部”类似,但有一个额外的技巧:同样,透明表面和线条宽度的两倍。现在需要删除此笔划的外部部分。为此,需要一条具有奇偶弯曲规则的路径。向此路径添加一个表面大小的矩形会反转路径,从而允许通过填充移除外部的所有内容。 对于非零缠绕规则...我没有任何直接的想法(嗯,另一个临时表面,然后通过使用运算符 SUBTRACT 的全表面绘制反转?)。
【讨论】:
【参考方案2】:要在路径内描边,将路径设置为剪切区域,然后描边;位于剪辑区域之外的任何笔画部分都将不可见...
【讨论】:
以上是关于开罗的笔画对齐的主要内容,如果未能解决你的问题,请参考以下文章