给定其他 2 个点、一个角度和一个距离的点

Point given 2 other points, an angle, and a distance

当我有另外两个点(origin 和 [=14] 时,我需要一个通用算法来计算一个点 (b) 的 (x,y) 坐标=])、角度(angle)和距离(distance)。

它们将像这样使用,形成一个实体填充的径向进度指示器

Example:
Where `o` is the origin and `A` is the angle:

     a
     .  ------+
     |        |
+----|----+   |
|    |    |   | I can draw more shapes as
|    .A   | --+ necessary to fill other
|   o \   |   | quadrants. I just need `A`
|      \  |   |
+-------\-+   |
         \    |
          \   |
           \  |
            \
             .b

这样,通过更改 angle 的值并重新绘制视图,我可以获得倒计时时钟样式的形状。

如何在通用算法中找到 b 的坐标?(我将使用多种语言实现)

如果 a 直接在原点右侧并且只有 b 移动: 这假设 b 是 'leading' a,记住角度总是逆时针测量的。在你的例子中 A 将是大外角,而不是小内角。如果你想让a领先b,就用-A代替。

b = (dist x cos(A), dist x sin(A))

如果 a 不是直接向右,则必须添加 'starting angle'(在从原点向右移动形成的线与从原点到 [= 的线之间) 13=]) 到像这样的 alpha:

beta = angle(right, origin, a)
b = (dist x cos(A + beta), dist x sin(A + beta))

如果 origin 不在 (0, 0),您必须将这些坐标添加到 b.

b = (origin_x + (dist x cos(A + beta)), origin_y + (dist x sin(A + beta)))