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