【问题标题】:Building an arc (an array of segments) at three points在三个点处构建弧(线段数组)
【发布时间】:2020-06-01 00:33:45
【问题描述】:

我有三个点的坐标。我想在他们身上建立一个弧
弧(非理想)由段组成(设 10 段)。
我需要三个点的坐标才能在这些点处获得弧段数组
我怎样才能做到这一点?

【问题讨论】:

标签: javascript geometry


【解决方案1】:

一种方法,绝对不是最短的方法,可能是以下。 你有 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)
.
.
.

【讨论】:

  • 不,我需要精确地获得一组线条来创建弧墙(对于我的物理游戏世界)。这不仅适用于渲染,也适用于物理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-11
  • 1970-01-01
相关资源
最近更新 更多