【发布时间】:2017-01-27 13:53:15
【问题描述】:
我一直在使用 Swift 的内置绘图工具绘制简单的直线路径。我注意到的一个异常情况是,如果您想要一条已填充但边缘没有线条笔划的路径,则它会在没有抗锯齿的情况下进行渲染并且外观粗糙。相反,默认情况下,一条线总是平滑渲染。有一个选项可以打开抗锯齿,但这也没有什么区别。我可以让笔触与填充颜色相同,但这意味着边缘会从定义形状的点位置向外扩展。
//creates shape node to contain path
let myTriangle = SKShapeNode()
//declares path object
let myPath = CGPathCreateMutable()
//moves to starting point of shape
CGPathMoveToPoint(myPath, nil, -50, 0)
//draws lines of shape
CGPathAddLineToPoint(myPath, nil, 0, 100 )
CGPathAddLineToPoint(myPath, nil, 50, 0 )
CGPathAddLineToPoint(myPath, nil, -50, 0 )
//closes path
CGPathCloseSubpath(myPath)
myTriangle.antialiased = true
//adds path to shape node
myTriangle.path = myPath
//sets fill colour and zero line width
myTriangle.fillColor = SKColor.blueColor()
myTriangle.lineWidth = 0
//sets antialiasing
myTriangle.antialiased = true
//sets position in parent object and adds node
myTriangle.position = CGPointMake(600, 600)
self.addChild(myTriangle)
有什么想法吗?
非常感谢, 千瓦
【问题讨论】:
-
你能提供一些截图来说明问题和理想吗?
-
这是我创建的一个示例。三角形有我发布的代码,除了最左边的点,我移动它以更清楚地显示边缘。请注意,红色框和黑色圆圈有一条白线,并且非常光滑。红框在旋转,仍然完美渲染。我将图片放大了 200%,希望您能看到不同之处:imgur.com/a/ypPFk
-
这有点令人惊讶。如果你抚摸三角形,它看起来不错?
标签: swift sprite-kit cgpath skshapenode