簡體   English   中英

計算點之間距離的邏輯

[英]Logic for calculating distance between points

是否要查找點[x1,y1]與半徑為2的以[c1,c2]為中心的圓上最近的點之間的距離? 我為此設計了以下等式

sqrt((p[0] - c[0]) ** 2 + (p[1] - c[1]) ** 2)

但是答案返回的答案似乎是錯誤的...

我究竟做錯了什么?

您的公式將計算到圓心的距離。 減去半徑,然后取絕對值。

radius = 2
abs(sqrt((p[0] - c[0]) ** 2 + (p[1] - c[1]) ** 2) - radius)

注意:是的,這將適用於圓上或圓內的點。

這將為您提供點與圓心之間的距離,而不是圓周上的最近點

查看此處答案以了解算法

您正在嘗試最小化到圓周上某個點的距離,因此我將使用一些演算優化。 解在下面的(x,y)。

f(x, y) = (x - x1)^2 + (y - y1)^2 // the distance formula

(x - c1)^2 + (y - c2)^2 = 2 ^ 2 = 4 // the equation of the circle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM