【发布时间】:2020-06-01 00:33:45
【问题描述】:
【问题讨论】:
标签: javascript geometry
【问题讨论】:
标签: javascript geometry
一种方法,绝对不是最短的方法,可能是以下。 你有 3 个点,因此你可以写出 circonference equation(x2+y2+ax+by+c=0) (三个点只通过一个circonference) .这是解决三个未知数中的 3 个方程组的问题。现在给定最外层的 2 个点,(x1,y1) 和 (x2,y2),您可以使用 Pitagora 定理计算绳索长度:
绳子 = √(y2-y1)2+(x2-x1)2
现在使用绳子的定理找到中心的角度,我称之为 alpha:
sin(alpha/2) = cord/2*radius
有圆周率方程很容易计算半径。
现在您有了alpha,您可以将角度分成 20 个部分。例如,如果 alpha 是 160,你会得到 Beta=8
现在你可以这样做了:
P0 x1,y1
P1 cos(180-8),sin(180-8)
P2 cos(180-16),sin(180-16)
.
.
.
以此类推,直到在我的示例中达到 160。 但是注意!以上是相对坐标,相对于圆周的中心。称为中心 (c1,c2) 的坐标将是:
P0 x1,y1
P1 c1+cos(180-8),c2+sen(180-8)
P2 c1+cos(180-16),c2+sin(180-16)
.
.
.
【讨论】: