From 6c1e7c5ac983301c34f003415cda2ef7c7e176a6 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 09 一月 2025 17:34:11 +0800
Subject: [PATCH] 1. 新增卫星遥测网格4个顶点坐标计算逻辑

---
 src/main/kotlin/com/flightfeather/uav/biz/satellite/SatelliteGridManage.kt |   31 +++++++++++++++++--------------
 1 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/biz/satellite/SatelliteGridManage.kt b/src/main/kotlin/com/flightfeather/uav/biz/satellite/SatelliteGridManage.kt
index 3d37e30..524dbc4 100644
--- a/src/main/kotlin/com/flightfeather/uav/biz/satellite/SatelliteGridManage.kt
+++ b/src/main/kotlin/com/flightfeather/uav/biz/satellite/SatelliteGridManage.kt
@@ -1,6 +1,8 @@
 package com.flightfeather.uav.biz.satellite
 
 import com.flightfeather.uav.common.utils.MapUtil
+import com.flightfeather.uav.domain.entity.GridCell
+import kotlin.math.PI
 import kotlin.math.sqrt
 
 /**
@@ -10,12 +12,13 @@
  * @date 2025/1/8
  * @author feiyu02
  */
-class SatelliteGridManage {
+object SatelliteGridManage {
 
     /**
      * 鏍规嵁姝f柟褰㈢綉鏍间腑蹇冪偣鍧愭爣锛岃绠�4涓《鐐瑰潗鏍�
+     * @param points 缃戞牸涓績鍧愭爣鐐规暟缁�
      */
-    fun calGridVertex(points:List<Pair<Double, Double>>):List<Array<Pair<Double, Double>>> {
+    fun calGridVertex(points: List<Pair<Double, Double>>): List<GridVertex> {
         if (points.size < 2) return emptyList()
         val p1 = points[0];
         val p2 = points[1];
@@ -27,13 +30,13 @@
         val halfDiagonal = sqrt((dis / 2) * (dis / 2) * 2);
         // 璁$畻棣栦釜姝f柟褰㈠悇椤剁偣鐩稿浜庝腑蹇冪偣鐨勮搴︼紝寰楀埌姝f柟褰㈠悇椤剁偣鐨勫潗鏍�
         val angle1 = MapUtil.plusAngle(angle, 45.0);
-        val gp1 = MapUtil.getPointByLen(p1, halfDiagonal, angle1);
+        val gp1 = MapUtil.getPointByLen(p1, halfDiagonal, angle1 * PI / 180);
         val angle2 = MapUtil.plusAngle(angle1, 90.0);
-        val gp2 = MapUtil.getPointByLen(p1, halfDiagonal, angle2);
+        val gp2 = MapUtil.getPointByLen(p1, halfDiagonal, angle2 * PI / 180);
         val angle3 = MapUtil.plusAngle(angle2, 90.0);
-        val gp3 = MapUtil.getPointByLen(p1, halfDiagonal, angle3);
+        val gp3 = MapUtil.getPointByLen(p1, halfDiagonal, angle3 * PI / 180);
         val angle4 = MapUtil.plusAngle(angle3, 90.0);
-        val gp4 = MapUtil.getPointByLen(p1, halfDiagonal, angle4);
+        val gp4 = MapUtil.getPointByLen(p1, halfDiagonal, angle4 * PI / 180);
         // 璁$畻4涓《鐐瑰垎鍒笌涓績鐐圭殑缁忕含搴﹀樊鍊�
         val dx1 = gp1.first - p1.first
         val dy1 = gp1.second - p1.second
@@ -45,12 +48,12 @@
         val dy4 = gp4.second - p1.second
 
         // 寰楀埌鎵�鏈夋鏂瑰舰缃戞牸鐨�4涓《鐐逛俊鎭�
-        return points.map { p->
-            arrayOf(
-                p.first + dx1 to p.second + dy1,
-                p.first + dx2 to p.second + dy2,
-                p.first + dx3 to p.second + dy3,
-                p.first + dx4 to p.second + dy4,
+        return points.map { p ->
+            GridVertex(
+                p.first + dx1, p.second + dy1,
+                p.first + dx2, p.second + dy2,
+                p.first + dx3, p.second + dy3,
+                p.first + dx4, p.second + dy4,
             )
         }
     }
@@ -58,8 +61,8 @@
     /**
      * 鎷嗗垎缃戞牸
      */
-    fun splitGrid() {
-
+    fun splitGrid(gridCellList: List<GridCell?>): List<GridCell> {
+        TODO()
     }
 
 }
\ No newline at end of file

--
Gitblit v1.9.3