diff --git a/AIStudio.Wpf.DiagramDesigner/Helpers/DrawingHelper.cs b/AIStudio.Wpf.DiagramDesigner/Helpers/DrawingHelper.cs index 442090e..ec068ea 100644 --- a/AIStudio.Wpf.DiagramDesigner/Helpers/DrawingHelper.cs +++ b/AIStudio.Wpf.DiagramDesigner/Helpers/DrawingHelper.cs @@ -14,7 +14,7 @@ namespace AIStudio.Wpf.DiagramDesigner List points = new List(); points.Add(startPoint); - Point thisPoint= startPoint; + Point thisPoint = startPoint; double thisAngle = angle; Point nextPoint; @@ -42,7 +42,7 @@ namespace AIStudio.Wpf.DiagramDesigner /// 起点 /// 距离 /// 终点坐标 - public static Point GetEndPointByTrigonometric(Point startPoint, double angle, double distance) + public static Point GetEndPointByTrigonometric(Point startPoint, double angle, double distance) { //角度转弧度 var radian = (angle * Math.PI) / 180; @@ -62,7 +62,7 @@ namespace AIStudio.Wpf.DiagramDesigner /// 终点坐标 public static Point GetEndPointByDirection(Point startPoint, double direction, double distance) { - return GetEndPointByTrigonometric(startPoint, direction - 90, distance); + return GetEndPointByTrigonometric(startPoint, 90 - direction, distance); } public static double GetAngle(Point startPoint, Point endPoint) @@ -74,9 +74,18 @@ namespace AIStudio.Wpf.DiagramDesigner public static double GetDirection(Point startPoint, Point endPoint) { - var radian = (endPoint.Y - startPoint.Y) / (endPoint.X - startPoint.X); + + var radian = Math.Atan2(endPoint.Y - startPoint.Y, endPoint.X - startPoint.X); var angle = radian * 180 / Math.PI; - return angle + 90; + if (angle >= -90 && angle < 90) + { + return 90 - angle; + + } + else + { + return angle - 90; + } } }