在 SpriteKit 中,clockwise
方向相反UIBezierPath
但不是为了CGPath
。例如,如果我有
do {
let path = CGPathCreateMutable()
CGPathAddArc(path, nil, 0, 0, 10, 0, CGFloat(M_PI_2), true)
let node = SKShapeNode(path: path)
node.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
self.addChild(node)
}
do {
let path = UIBezierPath()
path.addArcWithCenter(CGPoint(x: 0, y: 0), radius: 10, startAngle: 0, endAngle: CGFloat(M_PI_2), clockwise: true)
let node = SKShapeNode(path: path.CGPath)
node.position = CGPoint(x: self.size.width/2, y: self.size.height/2 - 100)
self.addChild(node)
}
in GameScene.didMoveToView(view: SKView)
,第一个节点绘制了一条缺少右上角的 3/4 弧,但第二个节点在右上角绘制了四分之一弧。反转的“顺时针”方向UIBezierPath
已解释在这篇文章中 http://www.simosh.com/article/dggggjha-circle-from-uibezierpath-drawn-in-wrong-direction-in-skshapenode.html,但为什么不CGPath
行为相同吗?不是UIBezierPath
只是一个包装CGPath
?
注意:Objective-C 和 Swift 都会发生这种情况(因此不是特定于语言的)。没有尝试过 Mac 应用程序NSBezierPath
.