java - 确定一组点是否大致构成一个圆

标签 java geometry

我和我的 friend 花了一两个小时在 java 中编写代码来查找是否由 x[] 表示的点数组(对于 x 坐标)和y[] (for y coordinates) 大致形成一个圆或不。

我们做了很多研究,但每次我们最终都会求解 3 个变量的非常大的联立方程。

我们想的是取数组的前3个点,找到这3个点的圆心(圆心),然后我们就可以找到这3个点的圆的半径,如果其他点也满足距离形成中心大致等于半径然后我们有一个圆。

我们如何做到这一点?

最佳答案

"How can we do this?"

基本上,通过做一些数学运算。

假设您有 N 个点 P1 到 Pn

  1. 选取一对点 P1 和 P2
  2. 找到点 P1 和 P2 之间的直线 L1 的中点 M1
  3. 构造另一条直线 R1 与 L1 成直角并通过 M1
  4. 对点 P2 和 P3 重复步骤 1 到 3,得到第二条线 R2
  5. 找到 R1 和 R2 的交点。也就是候选圆心C。
  6. 对于每个点Pi,计算从C到Pi的距离。

如果您的点“大致”在一个圆圈内,则每个点到中心的距离将“大致”相同。

步骤 1 到 6 可以用一些简单的代数转化为解析公式。计算出公式,然后将它们转化为代码。

关于java - 确定一组点是否大致构成一个圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50174576/

相关文章:

java - Apache Camel 条件路由

java - 传递性 log4j2 依赖 - 配置失败

javascript - 如何确定一个点当前位于椭圆路径的哪一半?

sql - 如何通过 STWithin 对 SQL Server 几何数据进行分组?

algorithm - 是否有用于环绕式 map 的简单 "point in rect"算法?

java - 如何从 JUnit 测试中判断 Eclipse 项目是否打开?

java - Guava-11.0.2.jar 是否与 com.google.common_1.0.0.0_0-6.jar 冲突?

java - Java 计数排序 - 意外结果

java - 用sql查找圆内的点

javascript - JavaScript 中的球面距离