Showing posts with label Trigonometry. Show all posts
Showing posts with label Trigonometry. Show all posts

Saturday, April 29, 2017

Delphi Trigonometry

Delphi TrigonometryUseful for PCB Scripts.

Intersection of two straight lines - Online Simulation


















Simulation Source: Math open Reference

Delphi code to Get Angle

const
RADIANS=57.29577951;

// If Angle is outside of 0-360 then put it within 0-360
function FixAngle(angle:double):double;
begin
 while angle>= 360.0 do
  angle := angle - 360.0;
 while angle < 0 do
  angle := angle + 360.0;
 result:=angle;
end;

// Angle going from x1,y1 to x2,y2
function GetAngleDegrees(x1,y1,x2,y2:double):double;
var
   part1, part2:double;
   angle:double;
begin
     if (x1=x2) and (y1=y2) then
        begin
        result:=0.0;
        exit;
     end;
     part1:=abs(y2-y1);
     if (part1=0) then begin part1:=0.0000001; y1:=y1+0.0000001; end;
     part2:=abs(x2-x1);
     if (part2=0) then begin part2:=0.0000001; x1:=x1+0.0000001; end;
     angle:=arctan(part1/part2)*RADIANS;
     if ((x1>x2) and (y1<y2)) then angle:=180-angle;
     if ((x1>x2) and (y1>y2)) then angle:=angle +180;
     if ((x1<x2) and (y1>y2)) then angle:=360-angle;
     angle:=FixAngle(angle);
     result:=angle;
end;

'via Blog this'