我试图填充我绘制的三角形,但它们并没有填充。下面是在上下文中绘制的代码,正如您在图片中看到的那样,路径描边很好。
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)
}
我将该函数调用两次,输出就是这个。
我正在阅读Quartz2D编程指南,但无法理解为什么这不会填写。这只是在一个继承自UIView的类的游乐场中发生的,没什么特别的。
答案 0 :(得分:3)
每次调用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)