【问题标题】:Point inside a rectangle - On which side of the diagonal is it?点在矩形内 - 它在对角线的哪一侧?
【发布时间】:2013-11-27 14:30:02
【问题描述】:

所以,我有一个分为两个三角形的矩形,我有一个点:

我知道矩形的四个顶点(A、B、C和D)的坐标,我知道P的坐标。我需要知道的是两个三角形中的哪个是点。

我认为这是一件非常简单的事情,但显然我自己无法弄清楚。

有什么帮助吗?

【问题讨论】:

    标签: coordinates rectangles diagonal


    【解决方案1】:

    有几种方法可以解决这个问题。但最简单和最直接的方法是检查斜率。

    例如,如果斜率 AP 小于斜率 AD,则点 P 高于 AD 线,反之亦然。如果斜率相同,则在同一条线上。

    编辑:

    假设如下

    A -> (0,3)
    B -> (3,3)
    C -> (0,0)
    D -> (3,0)
    

    那么斜率AD(3-0)/(3-0) = 1。假设P(2,2),那么斜率AP就是(2-3)/(2-0) = -1/2

    我们有AD > AP,因此点P 必须高于线AD。请注意,点 P 需要穿过 AD 才能低于该线,因此斜率会发生变化。

    【讨论】:

    • 比我的解决方案容易得多:)
    • 为了避免被零除,交叉乘以不等式。代替测试 (y1-y2)/(x1-x2)
    【解决方案2】:

    您可以考虑向量 AP 和向量 AD。计算这两个向量的叉积。叉积的符号会告诉你点在对角线的哪一边。

    更多信息:http://en.wikipedia.org/wiki/Cross_product

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-10
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多