如何找到矩形内某个位置对应的子三角形

How to find the corresponding subtriangle of a position inside a rectangle

我有一个动态矩形,其中创建了 4 个子三角形 (t0-t3)(通过从顶点添加对角线)。当给定某个 x|y 坐标时,找到相应三角形的最快方法是什么?矩形具有特定的位置和尺寸。我只需要右边的 "id" 而不是三角形的顶点,所以例如在图形中,当 p1 被指定为位置 0 时应该返回,3 在 p2 和 2 在 p3,...

当然,一种可能的解决方案是创建三角形并查询点是否包含在其中一个三角形中,但对于这么简单的事情来说,这感觉像是一个非常复杂的解决方案。 我还考虑过从中心创建一个矢量并测量角度,但它在具有不同尺寸的矩形中看起来也很复杂。

Example Rectangle

考虑以下几点:

设矩形的左下角为(0,0),右上角为(1,1)。现在,构成三角形的两条线定义为:

y = x and y = 1-x

对于除 (.5,.5) 之外的每个点,对于给定的 x 或 y,我们都有一个三元条件。例如,给定 x = .2,我们知道:

如果 y < .2,我们位于底部三角形 (t2),
elif .2 < y < .8,我们在左边的三角形 (t3),
否则,我们位于顶部三角形 (t0)。

希望这对您有所帮助,但无需明确提供代码。