From 5559a18c8ef881ae5f755aceb230b3845119d44e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=89=BE=E7=AB=B9?= Date: Wed, 2 Aug 2023 22:58:12 +0800 Subject: [PATCH] block --- .../Helpers/DrawingHelper.cs | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) 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; + } } }