【发布时间】:2019-10-18 01:21:16
【问题描述】:
我只是在尝试,习惯于在 iOS 上使用 Quartz 2D 进行绘图。我使用 Graphics Context move(to:) 和 addLine(_:CGPoint) 函数绘制了三个偏移正方形(仅限周界线)。考虑下图的结果:
我只显示顶部,但足以记录我的问题。您可以看到每个正方形的左上角是不完整的(锐角),而右上角看起来还不错。两个底角和右上角一样,完全符合我的预期。
所以,我添加这些线条的起始位置(宽度设置为 3.0)是使用图形上下文移动(到:CGPoiint)定位的左上角。只需调用 addLine(_:CGPoint) 方法即可到达每个后续角点。
那么,我做错了什么导致如图所示的“破碎”角落。如何让左上角看起来像所有其他的?
代码生成图
override func draw(_ rect: CGRect) {
let colors: [(CGFloat,CGFloat,CGFloat)] =
[(1.0,0.0,0.0),(0.25,1.0,0.5),(0.5,0.5,1.0)]
let c = UIGraphicsGetCurrentContext()!
c.setLineWidth(3.0)
var dx = 0
var dy = 0
for q in 1...3 {
c.move(to:CGPoint(x:dx+50, y:dy+50))
c.addLine(to:CGPoint(x: dx+200, y: dy+50))
c.addLine(to:CGPoint(x: dx+200, y: dy+200))
c.addLine(to:CGPoint(x: dx+50,y: dy+200))
c.addLine(to:CGPoint(x: dx+50,y: dy+50))
c.setStrokeColor(
red:colors[q-1].0
,green:colors[q-1].1
,blue:colors[q-1].2,alpha:1.0)
c.strokePath()
dx += 20
dy += 20
}
}
【问题讨论】:
标签: ios swift cocoa-touch core-graphics