gpt4 book ai didi

java - 确定 Path 是否描述一个圆

转载 作者:行者123 更新时间:2023-11-30 10:31:44 25 4
gpt4 key购买 nike

我正在尝试测试路径或多段线是否描述了 java 中的圆。我怎样才能做到这一点?我正在考虑测试路径上所有点的两点之间的最大距离是否几乎相同(考虑到一些错误)。这行得通吗?我还需要检查哪些其他可能性?

最佳答案

假设二维...

  1. 计算 bbox

    所以找到最小值和最大值 x,y所有样本点的坐标值x[i],y[i]你得到了。让我们称他们为x0,y0,x1,y1其中 x0<=x1y0<=y1

  2. 计算圆心 cx,cy

    只是 bbox 的中心所以:

    cx = 0.5*(x1+x0)
    cy = 0.5*(y1+y0)
  3. 计算半径

    如果你真的有一个圆,那么 bbox 应该是正方形的

    fabs((x1-x0)-(y1-y0)) <= zero_threshold

    如果没有你就没有圈子。如果是半径是

    r = ~0.5*(x1-x0) = ~0.5*(y1-y0)

    平均值也是...

    r = 0.25*(x1-x0 + y1-y0)
  4. 检查是否偏离圆圈

    计算最大绝对差异...

     d = max ( fabs( (x[i]-cx)^2 + (y[i]-cy)^2 - r^2) )

    如果d > max_radius_difference_threshold^2那你就没有圈子了。

另请检查:

还有另一种说法

  • 如果你知道半径和路径长度,那么它应该与圆的周长相匹配
  • 均匀采样的闭合圆形路径的平均点也是中心
  • 均匀采样的圆形路径的线段之间的角度是恒定的
  • 圆只是凸的

关于java - 确定 Path 是否描述一个圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43047301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com