【发布时间】:2012-10-22 06:41:54
【问题描述】:
我想检查一条线(或一条线的任何点)是否在一个矩形内或与一个矩形相交。
我有 (x0, y0) 和 (x1, y1) 作为一条线的起点和终点。 另外,(ax,ay) 和 (bx,by) 作为矩形的左上角和右下角
例如,
____________
| |
---|----- | Result: true
| |
|____________|
/
_/__________
|/ |
/ | Result: true
/| |
|____________|
____________
| |
| -------- | Result: true
| |
|____________| ---------- Result: false
谁能建议如何做到这一点?我不想知道那是哪一点,我只想知道它是否在那里。
非常感谢您的帮助
【问题讨论】:
-
+1 表示清晰的 ASCII 艺术 :)
-
快速谷歌搜索“Cohen Sutherland”应该会让您朝着正确的方向开始。
-
将每条边视为自己的线段。然后只需确定线段交点和完全包含在其中的情况。当然,这只是一个快速观察,可能不是解决此类交叉点的理想方法(这也是一个非常常见的交叉点——如果这是一个原始问题,我会感到非常惊讶; -)