gpt4 book ai didi

swift - 在 Swift 中填充未闭合的贝塞尔曲线路径

转载 作者:行者123 更新时间:2023-11-28 14:55:36 27 4
gpt4 key购买 nike

我正在尝试创建一个类似于左侧图像的图像。我有一个 NSBezier 路径(不是封闭路径)但是当我填充它时,它似乎只产生右边的图像。我想填充路径,但只填充环状部分。有什么建议吗?

The loops on the left is what I am trying to create

 UIGraphicsBeginImageContext(board.size)
if let context = UIGraphicsGetCurrentContext() {
if let path = snake.path {
context.setShouldAntialias(false)
let transformedPath = CGMutablePath()
transformedPath.addPath(path, transform: transform)
context.addPath(transformedPath)
context.setLineJoin(.round)
context.setLineCap(.round)
context.setLineWidth(snake.thickness)
context.setStrokeColor(UIColor.magenta.cgColor)
context.strokePath()
context.fillPath()

}

if let newImage = UIGraphicsGetImageFromCurrentImageContext()?.cgImage {
board.texture = SKTexture(cgImage: newImage)
}
}

UIGraphicsEndImageContext()

最佳答案

您没有阅读 strokePath documentation ,它说:

The current path is cleared as a side effect of calling this function.

所以当您调用 fillPath 时,当前路径是空的。没什么可填的。在调用 fillPath 之前,您需要再次调用 context.addPath(transformedPath) 来设置路径。

如果你想先填充再描边,你可以调用 use context.drawPath(using: .fillStroke)。此方法填充,然后描边当前路径(然后清除当前路径)。

此外,您没有设置上下文的填充颜色。默认填充颜色为黑色,这可能不是您想要的颜色。

关于swift - 在 Swift 中填充未闭合的贝塞尔曲线路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49420852/

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