看看这张图片(抱歉,我的工作机器上只有油漆刷):
在主要内部,你会看到两个黑色矩形,一个主要和一个未成年人。考虑它们是div
。 红点是每个点(顶部和左侧)的中心点。
绿色矩形是一个心理的(不是画在屏幕上)边界,对称地包含主要的反应角,它是由JavaScript计算的。
蓝线是这两个红点的对角线段。
我已经在JavaScript上计算了上述对象的所有位置。
黄点是我想要的点。它必须在红点的对角线上,但在边界处(绿线)。它不能在里面或里面。
我用我的算法创建了这个jsFiddle。如您所见,黄点位于绿色边界之外。它必须位于绿线限制的对角线段和。
有关此算法的任何帮助吗?
答案 0 :(得分:6)
您可以使用点斜率公式查找线上的点(以便找到与绿色顶线相交的点):
(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/)相交的样本。