Actionscript 3 从矩形交点返回矩形?

Actionscript 3 从矩形交点返回矩形?,actionscript-3,math,intersection,Actionscript 3,Math,Intersection,我一直在努力想出一个解决方案,返回一个表示两个矩形之间实际相交的矩形 我要找的是这样的: 如图所示,我希望将两个矩形相交后返回的矩形涂成绿色。不是某个布尔值为true或false 我会接受一个代码示例或简单的理论作为答案。提前谢谢 看看你需要的方法 基准交点与最小/最大计算: var t:int = getTimer(); var r3:Rectangle = new Rectangle(); var r1:Rectangle = new Rectangle(0, 0

我一直在努力想出一个解决方案,返回一个表示两个矩形之间实际相交的矩形

我要找的是这样的:

如图所示,我希望将两个矩形相交后返回的矩形涂成绿色。不是某个布尔值为true或false

我会接受一个代码示例或简单的理论作为答案。提前谢谢

看看你需要的方法

基准交点与最小/最大计算:

    var t:int = getTimer();

    var r3:Rectangle = new Rectangle();
    var r1:Rectangle = new Rectangle(0, 0, 100, 100);
    var r2:Rectangle = new Rectangle(50, 50, 100, 100);
    var i:int;

    for(i = 0; i < 100000; i++)
    {
        r3.left = Math.max(r1.left, r2.left);
        r3.right = Math.min(r1.right, r2.right);
        r3.top = Math.max(r1.top, r2.top);
        r3.bottom = Math.min(r1.bottom, r2.bottom);
    }
    trace("min/max: t = ", (getTimer() - t), "ms");

    t = getTimer();
    for(i = 0; i < 100000; i++)
    {
        r3 = r1.intersection(r2);
    }
    trace("intersection: t = ", (getTimer() - t), "ms");
读者需要在矩形的实际表示之间进行转换


如果r3.minX>r3.maxX | | r3.minY>r3.maxY,则不存在交点。否则,如果r3.minX==r3.maxX | | r3.minY==r3.maxY,则生成的矩形将退化。否则,你就有了一个实际的正面积交叉点。

在上,我发现这似乎是同一个问题。嗯,或者这只是一个是/否的问题。无论如何,我建议这可能是问和回答的某个地方,感谢你的答复,但正如你后来说的,这是一个简单的矩形交叉表示真或假。我正在寻找实际的相交矩形区域。非常感谢!现在看到这一点就完全有道理了。已接受:仅供参考:使用min/max的计算速度几乎是使用交集方法的两倍,因为有更多的函数调用,我将基准添加到我的答案OK中。当我回答时,这个问题也被标记为[c++]。嘿,很高兴知道这一点。我把问题标记为C++,因为我正使用它,但也可以是3,因为它很容易被转换为3代码到C++。我会接受两种语言的答案。谢谢你们两位!
min/max: t =  167 ms
intersection: t =  87 ms
r3.minX = max(r1.minX, r2.minX);
r3.maxX = min(r1.maxX, r2.maxX);
r3.minY = max(r1.minY, r2.minY);
r3.maxY = min(r1.maxY, r2.maxY);