From a6dbebb088845301a0bb5c06788449d691f6e0ed Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Mon, 24 Apr 2023 12:01:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20CalculateNewCoordinate=20?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=BB=99=E5=AE=9A=E7=9A=84x=E3=80=81y?= =?UTF-8?q?=E5=9D=90=E6=A0=87=E3=80=81=E8=A7=92=E5=BA=A6=E5=92=8C=E8=B7=9D?= =?UTF-8?q?=E7=A6=BB=E8=AE=A1=E7=AE=97=E6=96=B0=E7=9A=84=E5=9D=90=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/g2d/coordinate.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/utils/g2d/coordinate.go b/utils/g2d/coordinate.go index e8de899..529a369 100644 --- a/utils/g2d/coordinate.go +++ b/utils/g2d/coordinate.go @@ -11,3 +11,15 @@ func CalcDistance(x1, y1, x2, y2 float64) float64 { func CalcAngle(x1, y1, x2, y2 float64) float64 { return math.Atan2(y2-y1, x2-x1) * 180 / math.Pi } + +// CalculateNewCoordinate 根据给定的x、y坐标、角度和距离计算新的坐标 +func CalculateNewCoordinate(x, y, angle, distance float64) (newX, newY float64) { + // 将角度转换为弧度 + radians := angle * math.Pi / 180.0 + + // 计算新的坐标 + newX = x + distance*math.Cos(radians) + newY = y + distance*math.Sin(radians) + + return newX, newY +}