How to find the distance between two CG points?
Distance between p1
and p2
:
CGFloat xDist = (p2.x - p1.x);
CGFloat yDist = (p2.y - p1.y);
CGFloat distance = sqrt(xDist * xDist + yDist * yDist);
Put in a function:
func distance(_ a: CGPoint, _ b: CGPoint) -> CGFloat {
let xDist = a.x - b.x
let yDist = a.y - b.y
return CGFloat(sqrt(xDist * xDist + yDist * yDist))
}
Background: Pythagorean theorem
If you only need to calculate if the distance between the points increases or decreases, you can omit the sqrt() which will make it a little faster.
You can use the hypot()
or hypotf()
function to calculate the hypotenuse. Given two points p1
and p2
:
CGFloat distance = hypotf(p1.x - p2.x, p1.y - p2.y);
And that's it.