指向最接近x,y的直线

Joh*_*ohn 5 algorithm geometry

可能重复:
如何确定点是否在某一线附近?

//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);
Run Code Online (Sandbox Code Playgroud)

有人知道比单步穿过像素更快的方法吗?

能不能比我更警觉地证明他们的数学和几何能力了吗?

_______编辑___________

谢谢Kris,这让我感到困惑:

[X; -a/BX-C/B] = [0; -c/B] - 1/B [-b; 斧头.

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

_______编辑_________

杰森摩尔,感谢你的灵感,这就是我正在做的,从图形上看,

64x64平方,每条边缘到边缘有两条采样线,并且中心偏离一定距离

我希望这更清楚.

____编辑________

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

在此输入图像描述

我认为克里斯的方程式页面是要走的路.如果你们都告诉我这是一个两步的过程.现在只是两个联立方程,所以我可能不需要Kris的推导.

____编辑_________

无论好坏,我不知道,但作为搜索引擎的stackoverflow之美已向我揭示了几条调查路线.首先,我喜欢这里的第一个解决方案: 点和线段之间的最短距离.

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

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

推导是如此简单和优雅,即使我可以遵循它!

鉴于http://mathworld.wolfram.com/Point-LineDistance2-Dimensional.html

Kri*_*ris 7

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

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

编辑以回应评论:链接中的哪个等式(2)正在将矢量转换为让人联想到y = mx + c的形式,这使您可以快速轻松地读取渐变,垂直渐变可以从该渐变中读取容易计算.