1
我想填充一些我繪製的三角形,但是它們沒有填充。下面是在上下文中繪製的代碼,正如您在圖片中看到的那樣,路徑筆畫很好。CGContextDrawPath不會填充
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的類中的操場上,沒有什麼奇特的。
啊謝謝,這是有道理的。它是如何找出關閉三角形的?或CGContextAddLineToPoint也移動當前點? – chris
@chris:是的,CGContextAddLineToPoint()附加從當前點到給定點的線段,並使新點成爲當前點。 CGContextClosePath()將當前點的線段追加到子路徑的初始點。 –