【问题标题】:Find intersecting points on rectangle edges for line drawn inside it [closed]查找矩形边缘上的交点以在其中绘制线[关闭]
【发布时间】:2016-07-21 09:41:16
【问题描述】:
  1. 画一个矩形 ABCD。
  2. 在其中画一条连接任意两条边 GF 的线。
  3. 画一条垂直于线 GF 的平分线。

垂直平分线与矩形的边在什么点相交?

在下图中,线 GF 是从 (0, 2) 到 (6, 0) 绘制的。我需要知道垂直平分线在哪里与 AB 和 CD 上的矩形相交。

矩形内的线

【问题讨论】:

    标签: geometry intersection rectangles square


    【解决方案1】:

    GF的中点

    M.X = (G.X + F.X) / 2
    M.Y = (G.Y + F.Y) / 2
    

    垂直于 GF 的向量

    D.X = G.Y - F.Y
    D.Y = F.X - G.X
    

    平分线的参数方程

    X = M.X + t * D.X
    Y = M.Y + t * D.Y
    

    求解X = XLeft, X = XRight, Y = YTop, Y = YBottom 的这些方程,你会得到交点

    例如,首先您求解方程XLeft = M.X + t * D.X 以找到与矩形左边缘的交点的参数t。

    然后检查 Y' = M.Y + t * D.Y 是否在范围 (YTop..YBottom) 中找到 t。

    如果是,则平分线与左边缘的交点为 (XLeft, Y')

    【讨论】:

    • 感谢您的回复,但我不明白 ( t ) 在最终等式中的含义。还请解释 X = XBottom、X = XTop、Y = YLeft、Y = YRight 的含义以及我如何获得各自的坐标。如果可能,请举例说明。再次感谢。
    • t 是未知参数。我更正了名称:X = XLeft 表示您求解方程 XLeft = M.X + t * D.X 以查找与矩形左边缘的交点的参数 t 并检查 Y = M.Y + t * D.Y 是否在此 t 的范围 (YTop..YBottom) 内。
    • 感谢您的宝贵时间和回答
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 2015-11-12
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多