libgdx 计算重叠百分比?
libgdx calculate overlapping percentage?
我正在使用 libgdx,我需要计算 2 个矩形的重叠百分比。
其实就是一个Actor的重叠,加上一个矩形加到另一个Actor上。
如果另一个演员靠近某个演员,我想突出显示该演员,以便进行邻近度检查。
如果有 50% 的重叠,我想突出显示。然后,如果被拖到另一个演员附近的演员通过触摸被释放,我会让它滑到另一个演员附近。
所以这不是简单的碰撞检测,我需要知道它们碰撞了多少。
您可以使用 Libgdx Intersector class. You will need to create two Rectangles 轻松实现它,结果是第三个 - 您需要做的就是在相交后检查区域
Actor a,b;
...
Rectangle r = new Rectangle(a.getX(), a.getY(), a.getWidth(), a.getHeight() );
Rectangle s = new Rectangle(b.getX(), b.getY(), b.getWidth(), b.getHeight() );
Rectangle result = new Rectangle();
Intersector.intersectRectangles(r, s, result);
if( result.area() >= 0.5f * r.area() )
{
//do something if result area is equal to 50% a Actor area or more...
}
我正在使用 libgdx,我需要计算 2 个矩形的重叠百分比。
其实就是一个Actor的重叠,加上一个矩形加到另一个Actor上。
如果另一个演员靠近某个演员,我想突出显示该演员,以便进行邻近度检查。
如果有 50% 的重叠,我想突出显示。然后,如果被拖到另一个演员附近的演员通过触摸被释放,我会让它滑到另一个演员附近。
所以这不是简单的碰撞检测,我需要知道它们碰撞了多少。
您可以使用 Libgdx Intersector class. You will need to create two Rectangles 轻松实现它,结果是第三个 - 您需要做的就是在相交后检查区域
Actor a,b;
...
Rectangle r = new Rectangle(a.getX(), a.getY(), a.getWidth(), a.getHeight() );
Rectangle s = new Rectangle(b.getX(), b.getY(), b.getWidth(), b.getHeight() );
Rectangle result = new Rectangle();
Intersector.intersectRectangles(r, s, result);
if( result.area() >= 0.5f * r.area() )
{
//do something if result area is equal to 50% a Actor area or more...
}