В SpriteKit направление clockwise
отменено для UIBezierPath
, но не для CGPath
. Например, если у меня естьПочему CGPath и UIBezierPath по-разному определяют «по часовой стрелке» в SpriteKit?
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)
}
в GameScene.didMoveToView(view: SKView)
, первый узел рисует 3/4 дуги сверху справа отсутствует, но второй узел рисует четверть дугу в верхнем правом угле. Обратное направление «по часовой стрелке» в UIBezierPath
объясняется in this post, но почему не CGPath
ведут себя одинаково? Не UIBezierPath
просто обертка вокруг CGPath
?
Примечание: Это происходит как с Objective-C, так и с Swift (поэтому не зависит от языка). Не пробовал Mac App с NSBezierPath
.
Thank you. Я просто нашел ссылку на это для ['UIBezierView'] (https://developer.apple.com/library/ios/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/BezierPaths/BezierPaths.html#//apple_ref/doc/uid/ TP40010156-CH11-SW5) и ['CGPath'] (https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_overview/dq_overview.html#//apple_ref/doc/uid/TP30001066 -CH202-CJBBAEEC). –