algorithm - 最靠近 x,y 的直线上的点

标签 algorithm geometry

<分区>

Possible Duplicate:
How can I tell if a point is nearby a certain line?

//Returns the point on the line traced from start to end which
//comes nearest to 500,000, 500,000. The points are scaled between
//1,000,000 and 0 from their original fp types.
Point closestToCentre(Point start, Point end);

有谁知道比单步遍历像素更快的方法吗?

请问有没有比我更机敏的人展示他们的数学和几何实力?

_______编辑___________

谢谢克里斯,这让我很困惑:

[x; -a/bx-c/b]=[0; -c/b]-1/b[-b;斧头。

现在我看到它只是将向量(主要是 y 分量)分成两部分,它们结合起来产生相同的结果。让旧的部分分数脑细胞兴奋一分钟然后:)

_______编辑_________

Jason Moore,感谢您的启发,这是我正在做的,图形化的,

64x64 square with 2 sample lines each passing edge to edge and missing the centre by some distance

我希望这更清楚。

____编辑________

所以我可以合理地期望与我的采样线成直角并从中心运行它但是如何判断它们何时接触?

enter image description here

我认为 Kris 的方程式页面是正确的选择。如果你们都告诉我这是一个两步过程。现在只是两个联立方程,所以我可能不需要 Kris 的推导。

____编辑_________

无论是好事还是坏事,我都不知道,但 stackoverflow 作为搜索引擎的魅力向我揭示了几种调查途径。主要是我喜欢这里的第一个解决方案: Shortest distance between a point and a line segment .

但为了向我自己证明这一点,我需要底部的 matti 解决方案的链接(但只有一个):

http://www.topcoder.com/tc?d1=tutorials&d2=geometry1&module=Static

推导是如此简单和优雅,连我都能理解!

给定http://mathworld.wolfram.com/Point-LineDistance2-Dimensional.html

最佳答案

这是将一个点线性投影到一条直线上的问题,这可以通过一些精细的矢量体操来完成,如 MathWorld 中所述。 .

文章详细介绍了如何找到从点到线的最短距离,其中一个中间步骤是找到从点 x,y 到原始线的垂直线。将这两条线相交将为您提供线上最接近 x,y 的点。

根据评论编辑:链接中的等式 (2) 正在做的是将向量转换为让人联想到 y = mx + c 的形式,这使您可以快速轻松地读取梯度,从中垂直梯度可以很容易地计算出来。

关于algorithm - 最靠近 x,y 的直线上的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142028/

相关文章:

algorithm - 动态规划方法是否需要这两个条件(最优结构和重叠子问题)?

javascript - 使用javascript仅在数组中合并附近的重复值

algorithm - 针对已知边缘权重优化的 Prim 算法?

math - 多个矩形的边界(凹)多边形?

python - 计算n维圆弧路径

php - 如何压缩一组唯一的自然数并比较两个这样的集合?

algorithm - 采访 qns...在没有任何条件或比较运算符的情况下执行以下操作

algorithm - 多边形内多边形 多边形内多边形

algorithm - 如何以规则的密度选择点

geometry - 二维叉积的几何意义是什么?