From f94b1436d7a28c8e28d010b2cb657ab7c064e353 Mon Sep 17 00:00:00 2001
From: 826220679@qq.com <826220679@qq.com>
Date: 星期日, 28 十二月 2025 20:36:38 +0800
Subject: [PATCH] 修改了导航预览

---
 src/gecaoji/Gecaoji.java |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/gecaoji/Gecaoji.java b/src/gecaoji/Gecaoji.java
index d47353c..9845d8c 100644
--- a/src/gecaoji/Gecaoji.java
+++ b/src/gecaoji/Gecaoji.java
@@ -62,7 +62,7 @@
 
         double x = parseCoordinate(device.getRealtimeX());
         double y = parseCoordinate(device.getRealtimeY());
-        double heading = parseHeading(device.getHeading());
+        double heading = parseHeading(device.getYaw());
         if (Double.isNaN(x) || Double.isNaN(y)) {
             // Keep showing the last known mower position when temporary sensor glitches occur.
             return;
@@ -151,7 +151,9 @@
         double iconHeight = icon.getHeight(null);
         double maxSide = Math.max(iconWidth, iconHeight);
         double scaleFactor = worldSize / Math.max(maxSide, MIN_SCALE);
-        double rotationRadians = Math.toRadians(-headingDegrees);
+        // 杞﹁締鍥炬爣鐨勮溅澶撮粯璁ゆ槸鍦ㄥ睆骞曟涓嬫柟锛�270搴︼級
+        // headingDegrees宸茬粡鏄绠楀ソ鐨勬棆杞搴︼紙0-360搴︼級锛岀洿鎺ヤ娇鐢�
+        double rotationRadians = Math.toRadians(headingDegrees);
 
         AffineTransform original = g2d.getTransform();
         AffineTransform transformed = new AffineTransform(original);
@@ -176,9 +178,11 @@
         g2d.fill(fallbackShape);
         g2d.setColor(Color.WHITE);
         g2d.draw(fallbackShape);
-    double rotationRadians = Math.toRadians(-headingDegrees);
-    double lineLength = radius;
-    double dx = lineLength * Math.sin(rotationRadians);
+        // Yaw=0琛ㄧず姝e寳(0, -1)锛屼娇鐢╯in/cos璁$畻鍧愭爣
+        // sin(180)=0, cos(180)=-1 -> 姝e寳
+        double rotationRadians = Math.toRadians(180 - headingDegrees);
+        double lineLength = radius;
+        double dx = lineLength * Math.sin(rotationRadians);
     double dy = lineLength * Math.cos(rotationRadians);
     g2d.drawLine(
         (int) Math.round(position.x),

--
Gitblit v1.10.0