CGPointUtils.c
上传用户:jjjjag8
上传日期:2017-04-17
资源大小:1443k
文件大小:1k
源码类别:

iPhone

开发平台:

MultiPlatform

  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. #include "CGPointUtils.h"
  10. #include <math.h>
  11. #define pi 3.14159265358979323846
  12. #define degreesToRadian(x) (pi * x / 180.0)
  13. #define radiansToDegrees(x) (180.0 * x / pi)
  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. CGFloat angleBetweenPoints(CGPoint first, CGPoint second) {
  20. CGFloat height = second.y - first.y;
  21. CGFloat width = first.x - second.x;
  22. CGFloat rads = atan(height/width);
  23. return radiansToDegrees(rads);
  24. //degs = degrees(atan((top - bottom)/(right - left)))
  25. }
  26. CGFloat angleBetweenLines(CGPoint line1Start, CGPoint line1End, CGPoint line2Start, CGPoint line2End) {
  27. CGFloat a = line1End.x - line1Start.x;
  28. CGFloat b = line1End.y - line1Start.y;
  29. CGFloat c = line2End.x - line2Start.x;
  30. CGFloat d = line2End.y - line2Start.y;
  31. CGFloat rads = acos(((a*c) + (b*d)) / ((sqrt(a*a + b*b)) * (sqrt(c*c + d*d))));
  32. return radiansToDegrees(rads);
  33. }