Я хочу создать X количество точек на 30 градусов на окружности. Примерно так:
Код, который я сейчас имею, выглядит так:
func pointsOnCircle(num: Int, radius:Float, center:CGPoint) {
let _by = 360/num
for i in stride(from: 0, to: 360, by: _by) {
print("Stride: \(i)")
let x = radius * cos(Float(i))
let y = radius * sin(Float(i))
let pos = CGPoint(x: CGFloat(x)+center.x, y: CGFloat(y)+center.y)
var node: SKSpriteNode!
if(i == 0){
node = SKSpriteNode(color: SKColor.blue, size: CGSize(width: 10, height: 10))
} else if (i == 90){
node = SKSpriteNode(color: SKColor.orange, size: CGSize(width: 10, height: 10))
} else if (i == 180){
node = SKSpriteNode(color: SKColor.purple, size: CGSize(width: 10, height: 10))
} else {
node = SKSpriteNode(color: SKColor.red, size: CGSize(width: 10, height: 10))
}
node.alpha = 0.5
node.position = pos
node.zPosition = 20
self.addChild(node)
}
}
Поскольку 360, деленное на 12 - это 30 .. Я вызываю функцию следующим образом:
pointsOnCircle(num: 12, radius: 100, center: CGPoint(x: frame.midX, y: frame.midY))
Я не получаю ожидаемого результата, как вы можете видеть на изображении ниже:
синий прямоугольник равен 0 градусам, что правильно
Фиолетовый прямоугольник - 180 градусов, что неверно
Оранжевый прямоугольник равен 90 градусам, что также неверно.