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