3

看看这张图片(抱歉,我的作品机器上只有画笔):

在此处输入图像描述

在那里,您会看到两个黑色矩形,一个主要的和一个次要的,在主要内部。考虑它们是divs。红点是每个的中心点(顶部和左侧)。

绿色矩形是一个心理(不是在屏幕上绘制)边界,对称地包含主要反应角,它是由 JavaScript 计算的。

线是这两个红点的对角线段。

我已经在 J​​avaScript 上计算了上述对象的所有位置。

我想要得到的点。它必须在红点的对角线上,但在边界(绿线)。它不能在外面或里面。

我用我的算法创建了这个jsFiddle 。如您所见,黄色点位于绿色边界之外。它必须在对角线段内超过绿线限制。

这个算法有什么帮助吗?

4

1 回答 1

7

有关斜率的更多信息:https ://www.khanacademy.org/math/algebra/linear-equations-and-inequalitie/slope-and-intercepts/v/slope-of-a-line

您可以使用点斜率公式来查找线上的点(以找到与绿色顶线相交的点):

(x1, y1) - one of the red points
(x2, y2) - another of the red points
(x, y) - the green point
slope = (y2 - y1) / (x2 - x1) 
y - y1 = slope * (x - x1)

编辑:感谢 Imre Kerr:

现在,您已经有了点的 y(如果您的线与顶部的绿线相交)或点的 x(如果它与左侧的绿线相交)。从这里,你可以找到另一个坐标。假设您与顶线 ( http://jsfiddle.net/BGSacho/TDH7q/6/ ) 相交的示例。

于 2013-05-24T19:44:05.393 回答