3547
|
1 |
/*
|
|
2 |
* CGPointUtils.c
|
|
3 |
* PinchMe
|
|
4 |
*
|
|
5 |
* Created by Jeff LaMarche on 8/2/08.
|
|
6 |
* Copyright 2008 __MyCompanyName__. All rights reserved.
|
|
7 |
*
|
|
8 |
*/
|
|
9 |
|
|
10 |
#include "CGPointUtils.h"
|
|
11 |
#include <math.h>
|
|
12 |
|
|
13 |
|
|
14 |
CGFloat distanceBetweenPoints (CGPoint first, CGPoint second) {
|
|
15 |
CGFloat deltaX = second.x - first.x;
|
|
16 |
CGFloat deltaY = second.y - first.y;
|
|
17 |
return sqrt(deltaX*deltaX + deltaY*deltaY );
|
|
18 |
}
|
|
19 |
|
|
20 |
CGFloat angleBetweenPoints(CGPoint first, CGPoint second) {
|
|
21 |
CGFloat height = second.y - first.y;
|
|
22 |
CGFloat width = first.x - second.x;
|
|
23 |
CGFloat rads = atan(height/width);
|
|
24 |
return radiansToDegrees(rads);
|
|
25 |
}
|
|
26 |
|
|
27 |
CGFloat angleBetweenLines(CGPoint line1Start, CGPoint line1End, CGPoint line2Start, CGPoint line2End) {
|
|
28 |
CGFloat a = line1End.x - line1Start.x;
|
|
29 |
CGFloat b = line1End.y - line1Start.y;
|
|
30 |
CGFloat c = line2End.x - line2Start.x;
|
|
31 |
CGFloat d = line2End.y - line2Start.y;
|
|
32 |
CGFloat rads = acos(((a*c) + (b*d)) / ((sqrt(a*a + b*b)) * (sqrt(c*c + d*d))));
|
|
33 |
return radiansToDegrees(rads);
|
|
34 |
}
|