如何测试一条线段是否与2D轴对齐的矩形相交?

41
如何测试二维坐标系中线段是否与轴对齐的矩形相交?该线段由其两个端点p1和p2定义。该矩形由左上角和右下角点定义。
12个回答

0

以下是我的解决方案的一些示例代码(使用php):

// returns 'true' on overlap checking against an array of similar objects in $this->packed
public function checkForOverlaps(BinPack_Polygon $nItem) {
  $nX = $nItem->getLeft();
  $nY = $nItem->getTop();
  $nW = $nItem->getWidth();
  $nH = $nItem->getHeight();
  // loop through the stored polygons checking for overlaps
  foreach($this->packed as $_i => $pI) {
    if(((($pI->getLeft() - $nW) < $nX) && ($nX < $pI->getRight())) && ((($pI->getTop() - $nH) < $nY) && ($nY < $pI->getBottom()))) {
      return true;
    }
  }
  return false;
}

0
一个快速的谷歌搜索弹出了一个包含C++代码用于测试交叉点的页面。
基本上,它测试线和矩形的每个边界之间的交叉点。 矩形和线交叉点代码

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接