calculating angle between two points on edge of circle Swift SpriteKit

大城市里の小女人 提交于 2019-11-29 12:27:20

问题


How would you calculate the degrees between two points on the edge of a circle in Swift.


回答1:


Given points p1, p2 on a circle with center center, you would compute the difference vectors first:

let v1 = CGVector(dx: p1.x - center.x, dy: p1.y - center.y)
let v2 = CGVector(dx: p2.x - center.x, dy: p2.y - center.y)

Then

let angle = atan2(v2.dy, v2.dx) - atan2(v1.dy, v1.dx)

is the (directed) angle between those vectors in radians, and

var deg = angle * CGFloat(180.0 / M_PI)

the angle in degrees. The computed value can be in the range -360 .. 360, so you might want to normalize it to the range 0 <= deg < 360 with

if deg < 0 { deg += 360.0 }


来源:https://stackoverflow.com/questions/28641096/calculating-angle-between-two-points-on-edge-of-circle-swift-spritekit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!