Janilabo

Untitled

Jul 31st, 2013
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.47 KB | None | 0 0
  1. function AngleDegrees(pt1, pt2: TPoint): Extended;
  2. begin
  3.   if (pt2.X = pt1.X) then
  4.   begin
  5.     if (pt2.Y > pt1.Y) then
  6.       Result := 90.0
  7.     else
  8.       Result := 270.0;
  9.   end else
  10.     Result := (ArcTan2((pt2.Y - pt1.Y), (pt2.X - pt1.X)) * (180.0 / Pi));
  11.   if (Result < 0) then
  12.     Result := (Result + 360.0);
  13. end;
  14.  
  15. function AngleDegrees2(pt1, pt2: TPoint): Extended;
  16. begin
  17.   Result := (ArcTan2((pt2.Y - pt1.Y), (pt2.X - pt1.X)) * (180.0 / Pi));
  18. end;
  19.  
  20. function AngleRadians(pt1, pt2: TPoint): Extended;
  21. begin
  22.   Result := FixR(ArcTan2((pt2.Y - pt1.Y), (pt2.X - pt1.X)));
  23. end;
  24.  
  25. function Angle(pt1, pt2: TPoint): Extended;
  26. begin
  27.   Result := ((ArcTan2((pt2.Y - pt1.Y), (pt2.X - pt1.X)) * (180.0 / Pi)) + 90.0);
  28.   if (Result < 0.0) then
  29.     Result := (Result + 360.0);
  30. end;
  31.  
  32. function DegreesToCompass(dgrs: Extended): Extended;
  33. begin
  34.   Result := FixD(dgrs + 90.0);
  35. end;
  36.  
  37. function CompassToDegrees(cmps: Extended): Extended;
  38. begin
  39.   Result := FixD(cmps - 90.0);
  40. end;
  41.  
  42. function RadiansToCompass(rdns: Extended): Extended;
  43. begin
  44.   Result := FixD(Degrees(rdns) + 90.0);
  45. end;
  46.  
  47. function CompassToRadians(cmps: Extended): Extended;
  48. begin
  49.   Result := FixR(Radians(cmps - 90.0));
  50. end;
  51.  
  52. var
  53.   a, b: TPoint;
  54.  
  55. begin
  56.   ClearDebug;
  57.   a := Point(10, 10);
  58.   b := Point(20, 00);  
  59.   WriteLn(Angle(a, b));
  60.   WriteLn(AngleDegrees(a, b));
  61.   WriteLn(Degrees(CompassToRadians(DegreesToCompass(AngleDegrees2(a, b)))));
  62.   WriteLn((Degrees(AngleRadians(a, b))));
  63. end.
Advertisement
Add Comment
Please, Sign In to add comment