gpt4 book ai didi

qt - 仅在内部/外部抚摸路径?

转载 作者:行者123 更新时间:2023-12-05 00:31:13 26 4
gpt4 key购买 nike

给定一个 QPainterPath 如何仅在路径的内侧或外侧边缘(或非封闭路径的左侧或右侧)描边路径?

QPainter::strokePath() 使笔沿路径居中并使相同量的墨水落在两侧。有关所需效果的视觉示例,请参阅我制作的此图形(对于 SVG 提案,而不是功能):

SVG proposed stroke-location example, from phrogz.net/SVG/stroke-location.svg

我不介意这是通过一些 hack 来完成的,比如将路径本身设置为剪切区域(用于内部)或反剪切区域(用于外部)。

这里的目标是用低不透明度填充填充圆角矩形,然后用较低不透明度的笔画在圆角矩形之外描边,以模拟 2 步“模糊”衰减。如果笔触与填充重叠,则不透明度会加倍,从而破坏效果。由于形状复杂,路径的简单缩放不会很好地工作,即使它可能适用于上面绘制的圆形和矩形。

最佳答案

您最好的选择可能是 QPainterPathStroker .使用它来创建一个新路径,它是您路径的轮廓。然后使用 QPainterPath 操作,例如两者之间的交集或减法:

outsidePath = strokedPath.subtracted(originalPath);
insidePath = strokedPath.intersected(originalPath);

关于qt - 仅在内部/外部抚摸路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15166754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com