gpt4 book ai didi

swift - CGContextDrawPath 不会填充

转载 作者:搜寻专家 更新时间:2023-11-01 06:46:48 32 4
gpt4 key购买 nike

我正在尝试填充我绘制的一些三角形,但它们没有填充。下面是在上下文中绘制的代码,正如您在图片中看到的那样,路径描边很好。

func draw(context:CGContextRef) {
CGContextBeginPath(context)
CGContextMoveToPoint(context, self.peak.x, self.peak.y)
CGContextAddLineToPoint(context, self.left.x,self.left.y)
CGContextMoveToPoint(context, self.left.x, self.left.y)
CGContextAddLineToPoint(context, self.right.x,self.right.y)
CGContextMoveToPoint(context, self.right.x, self.right.y)
CGContextAddLineToPoint(context, self.peak.x,self.peak.y)
CGContextSetStrokeColorWithColor(context,UIColor.blackColor().CGColor)
CGContextSetFillColorWithColor(context,UIColor.redColor().CGColor)
CGContextDrawPath(context, kCGPathFillStroke)
}

我调用该函数两次,输出是这样的。

enter image description here

我正在阅读 Quartz2D 编程指南,但不明白为什么这不会填满。这只是发生在一个继承自 UIView 的类的 Playground 上,没什么特别的。

最佳答案

每次调用 CGContextMoveToPoint() 都会启动一个新的子路径,然后它被填充,就好像你已经关闭它一样(并且没有任何东西看看你是否填充了一个线段)。描边和填充一个三角形,使用:

CGContextBeginPath(context)

CGContextMoveToPoint(context, self.peak.x, self.peak.y)
CGContextAddLineToPoint(context, self.left.x,self.left.y)
CGContextAddLineToPoint(context, self.right.x,self.right.y)
CGContextClosePath(context)

CGContextSetStrokeColorWithColor(context,UIColor.blackColor().CGColor)
CGContextSetFillColorWithColor(context,UIColor.redColor().CGColor)
CGContextDrawPath(context, kCGPathFillStroke)

关于swift - CGContextDrawPath 不会填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29716451/

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