From 5f80de49c4a00416591054180bf809a12a76d686 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期四, 07 十一月 2024 16:40:53 +0800 Subject: [PATCH] 1 --- TEWin/FrmWin.cs | 55 +++++++++++++++++++++++++++++-------------------------- 1 files changed, 29 insertions(+), 26 deletions(-) diff --git a/TEWin/FrmWin.cs b/TEWin/FrmWin.cs index 49a0a95..87c9072 100644 --- a/TEWin/FrmWin.cs +++ b/TEWin/FrmWin.cs @@ -577,16 +577,7 @@ if (angleCount % 3 == 2) { - IPoint p1 = (IPoint)line.Points[0]; - IPoint p2 = (IPoint)line.Points[1]; - IPoint p3 = (IPoint)line.Points[2]; - var pos1 = SG.Creator.CreatePosition(p1.X, p1.Y); - var pos2 = SG.Creator.CreatePosition(p2.X, p2.Y); - var pos3 = SG.Creator.CreatePosition(p3.X, p3.Y); - - var first = SG.CoordServices.GetAimingAngles(pos1, pos2); - var sencod = SG.CoordServices.GetAimingAngles(pos2, pos3); - angleSize = getAngle(first, sencod); + angleSize = getAngle(line); angleLabel.Text = angleSize.ToString() + "掳"; } } @@ -596,21 +587,33 @@ } } - private double getAngle(IPosition71 first, IPosition71 sencod) + private double getAngle(ILineString line, bool getB = false) { - /*double angle = 0; - if (sencod.Yaw > first.Yaw) + IPoint p1 = (IPoint)line.Points[0]; + IPoint p2 = (IPoint)line.Points[1]; + IPoint p3 = (IPoint)line.Points[2]; + var pos1 = SG.Creator.CreatePosition(p1.X, p1.Y); + var pos2 = SG.Creator.CreatePosition(p2.X, p2.Y); + var pos3 = SG.Creator.CreatePosition(p3.X, p3.Y); + + //var first = SG.CoordServices.GetAimingAngles(pos1, pos2); + var first = SG.CoordServices.GetAimingAngles(pos1, pos2); + var sencod = SG.CoordServices.GetAimingAngles(pos2, pos3); + if (getB) return Math.Round(sencod.Yaw, 2); + + double angle = 0; + if (first.Yaw >= 0 && first.Yaw < 180) { - angle = sencod.Yaw - first.Yaw; - if (angle > 180) angle = 360 - sencod.Yaw + first.Yaw; + angle = first.Yaw + 180 - sencod.Yaw; + if (angle > 180) angle = 360 - angle; + if (angle < 0) angle = -angle; } else { - angle = first.Yaw - sencod.Yaw; - if (angle > 180) angle = 360 + sencod.Yaw - first.Yaw; - }*/ - - double angle = sencod.Yaw > first.Yaw ? sencod.Yaw - first.Yaw : first.Yaw - sencod.Yaw; + angle = sencod.Yaw - (first.Yaw - 180); + if (angle > 180) angle = 360 - angle; + if (angle < 0) angle = -angle; + } return Math.Round(angle, 2); } @@ -648,14 +651,14 @@ if (angleCount % 3 == 2) { - IPoint secondPoint = (IPoint)line.Points[line.Points.Count - 2]; + //IPoint secondPoint = (IPoint)line.Points[line.Points.Count - 2]; + //var secondPos = SG.Creator.CreatePosition(secondPoint.X, secondPoint.Y); IPoint nowPoint = (IPoint)line.Points[line.Points.Count - 1]; - var secondPos = SG.Creator.CreatePosition(secondPoint.X, secondPoint.Y); var newPos = SG.Creator.CreatePosition(nowPoint.X, nowPoint.Y); - bLabel = CreateLabel(newPos, GetGroupId(angleGroupName), "#00FFFF"); - bLabel.Text = Math.Round(SG.CoordServices.GetAimingAngles(secondPos, newPos).Yaw, 2) + "掳"; + bLabel.Text = getAngle(line, true) + "掳"; + angleSize = getAngle(line); angleLabel.Text = angleSize.ToString() + "掳"; } angleCount++; @@ -870,7 +873,7 @@ private void Save() { string emptyFly = Path.Combine(Application.StartupPath, "Resources", "empty.fly"); - if (emptyFly.Equals(this.fly)) + if (emptyFly.Contains("empty.fly")) //if (emptyFly.Equals(this.fly)) { SaveAs(); return; @@ -951,7 +954,7 @@ { try { - if (String.IsNullOrEmpty(fileName)) fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".fly"; + if (String.IsNullOrEmpty(fileName) || "empty.fly".Equals(fileName)) fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".fly"; SaveLocation(); this.SG.Command.Execute(1019, 0); // Capture Tree State -- Gitblit v1.9.3