为了账号安全,请及时绑定邮箱和手机立即绑定

如何找到直线和矩形之间的交点?

如何找到直线和矩形之间的交点?

如何找到直线和矩形之间的交点?我有一条从A点到B点的线; 我有(x,y)这两点。我还有一个以B为中心的矩形以及矩形的宽度和高度。我需要找到与矩形相交的线中的点。有没有一个公式给我这一点的(x,y)?
查看完整描述

3 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

点A始终位于矩形之外,点B始终位于矩形的中心

假设矩形是轴对齐的,这使事情变得非常简单:

线的斜率是s =(Ay-By)/(Ax-Bx)。

  • 如果-h / 2 <= s * w / 2 <= h / 2则该线相交:

    • Ax> Bx时的右边缘

    • Ax <Bx时的左边缘。

  • 如果-w / 2 <=(h / 2)/ s <= w / 2则该线相交:

    • 最高的边缘,如果Ay> By

    • Ay <By的底边。

一旦你知道它相交的边缘就知道一个坐标:x = Bx±w / 2或y = By±h / 2,具体取决于你击中的边缘。另一个坐标由y = By + s * w / 2或x = Bx +(h / 2)/ s给出。


查看完整回答
反对 回复 2019-08-28
  • 3 回答
  • 0 关注
  • 1485 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信