optimization - 找到最小距离

标签 optimization distance geometry curves

我需要在给定圆(或曲线)上找到一个或多个点来最小化 d0+d1?曲线的半径和中心分别为(0,0)和'r',并且A点和B点的坐标已知。假设 A=(x1,y1) 和 B=(x1,-y1) 和 r> sqrt(x1^2+y1^2) 。 C 是圆的未知点,应最小化长度 d0+d1 d0 - 圆上 A 到 C 之间的距离 d1-圆上B到C的距离

C点沿圆移动。我需要在给定圆(或曲线)上找到一个或多个点来最小化 d0+d1?

最佳答案

如果线 AB 与圆相交,则 C 就是该交点(请注意,可以有两个交点,并且两者的距离 d0+d1 相等!)。

line crosses circle

如果AB不与圆相交,则C是圆上与AB上最接近圆心的点的假想线相交的点。

line does not cross circle

网上有很多文章介绍如何找到一条线上距离另一个点最近的点,以及如何找到两条线之间的交点,这可以解决第二种情况。对于第一种情况,您可以谷歌“线圆交点”

关于optimization - 找到最小距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14851978/

相关文章:

r - 2 个经纬度点列表(坐标)之间的地理/地理空间距离

javascript - 圆内圆,但不在同一个 div 中分开(如飞镖游戏)

有偏差的 Java 递归三角形

Java 优化 : speed of inner loops inconsistent?

java - 加速递归函数

c++ - 计算距离 : method "must return a value"?

c# - 我如何找到两点/像素之间的距离?

c++ - 针对非指针的指针

mysql - 如何优化双选查询

python - 关闭多边形的算法