【发布时间】:2013-03-01 20:56:49
【问题描述】:
给定QPainterPath,我如何仅在路径的内侧或外侧边缘(或非封闭路径的左侧或右侧)描边路径?
QPainter::strokePath() 将笔沿路径居中并导致相同数量的墨水落在两侧。有关所需效果的视觉示例,请参见我制作的这张图(针对 SVG 提案,而不是功能):
我不介意这是通过一些技巧来完成的,例如将路径本身设置为剪切区域(用于内部)或反剪切区域(用于外部)。
这里的目标是用低不透明度填充填充一个圆角矩形,然后用低不透明度描边在圆角矩形之外进行描边,以模拟 2 步“模糊”衰减。如果描边与填充重叠,则不透明度加倍,破坏效果。由于形状复杂,路径的简单缩放不会很好,即使它可能适用于上面绘制的圆形和矩形。
【问题讨论】: