(JavaScript) 计算点位于直线内所需的角度

问题描述 投票:0回答:1

我需要在 JavaScript 中编写一个函数,用于计算绕原点旋转的角度(以度为单位),这是将点定位在直线顶部所需的。点(以及旋转)由 x 和 y 坐标定义。一条线由属性 startX、startY、endX、endY 定义。

感谢您的时间和帮助!

我认为这个问题可以用三角学来解决,但我不知道如何解决。

点的位置、原点或线的坐标是单独的。我想找到的是这样的函数的数学实现:

function calculateAngle(point, line, rotationOrigin) {
    /* The things i know:
    - point.x, point.y
    - rotationOrigin.x, rotateOrigin.y
    - line.startX, line.startY, line.endX, line.endY
    */
    return angleToFind;
}
javascript math rotation trigonometry
1个回答
0
投票

在这里提问时要做的第一件事是在这里搜索给出的答案:

https://stackoverflow.com/search?q=圆+线+交点
https://stackoverflow.com/questions/1073336/circle-line-segment-collision-detection-algorithm
https://stackoverflow.com/questions/13053061/circle-line-intersection-points

对于您的问题,请注意可能有两种解决方案(圆的“割线”)、一种解决方案(“切线”)或没有解决方案(圆的外部线)

要找到角度,假设您有解“S1(s1x, s1y)”。您可以形成向量circle-center到starting-point和circle-center到S1。
再次搜索该网站:

https://stackoverflow.com/search?q=angle+ Between+vectors 你可以得到那个角度。如果您使用其他解决方案 S2,您会得到不同的角度。您可以选择逆时针方向。

© www.soinside.com 2019 - 2024. All rights reserved.