我有一个点数组,还有两个点(A 和 B)。最后两个点形成一条线,我试图找出数组中的哪些点离这条线最远。我如何在 Java 中执行此操作?
我想知道这是否与计算 A 和 B 之间的距离有关,但我并不这么认为。
附加信息: 我认为这是一条线段。鉴于这是 QuickHull,我不知道它是否有所作为。 在数学和公式方面,我从来都不是最棒的,所以解释越多越好。谢谢!
最佳答案
注意数组中每个p
的每3个点[a,b,p]
组成一个三角形,其面积表示为:(ab ) * h/2
[其中 h
是从 p
到 ab
的距离]
您可以 compute the area这些三角形创建并选择最小的。由于 ab
对所有人都是常数 - 它保证了具有最小面积的三角形也将具有最小的 h
。
你可以找到它[每个三角形的面积]使用
T=(1/2)* abs((x_a - x_p) * (y_b-y_a) - (x_a - x_b)* (y_p - y_a))
[其中x_a,x_b,x_p
和y_a,y_b,y_p
是a,b的
分别].x,y
坐标,p
- 虽然我觉得这个方法很优雅,但我相信还有更好的方法 方法。
关于java - 找到离线最远的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9418937/