如何确定矩形是否与直角三角形相交?

时间:2014-10-12 00:19:20

标签: c# collision-detection collision intersection

我正在尝试确定矩形是否与给定以下三角形标准的三角形相交:

  1. 三角形将永远是一个直角
  2. 三角形将始终来自矩形的一个角落
  3. 三角形将始终是源矩形的全宽和高度
  4. 所以我的一个三角形只能是矩形的左上角,右上角,左下角和右下角。

    代码看起来与此相似:

    Rectangle triangleSourceRect = new Rectangle(10, 10, 40, 40);
    
    // top-left triangle from triangleSourceRect
    Point[] topLeft = new Point[] {new Point(triangleSourceRect.Left, 
                                             triangleSourceRect.Top), 
                                   new Point(triangleSourceRect.Left, 
                                             triangleSourceRect.Bottom),
                                   new Point(triangleSourceRect.Right, 
                                             triangleSourceRect.Top)};
    
    Rectangle bounds = new Rectangle(28, 28, 20, 10);
    
    if (bounds.Intersects(topLeft))
        return true;
    

    这是上面代码的图表:

    Triangle and Rectangle intersection diagram

0 个答案:

没有答案