泡泡图形程序

时间:2014-03-07 22:25:11

标签: java android gesture graphic intersect

嘿所有

我有一个程序可以通过触摸屏幕(手势检测器)在任何地方绘制气泡, 我想处理一个问题,就是不要通过intersect方法在同一个位置绘制两个气泡 我怎么能这样做?**

1 个答案:

答案 0 :(得分:2)

我假设你有一些现有气泡的收藏品。每当你有一个新的泡泡时,使用这样的东西来确定它是否与集合中的任何气泡相交。如果没有,则绘制它并将其添加到集合中。

import java.util.Collection;

public class Bubble {
    private int centreX;
    private int centreY;
    private int radius;

    public Bubble(int centreX, int centreY, int radius) {
        this.centreX = centreX;
        this.centreY = centreY;
        this.radius = radius;
    }

    public boolean intersectsAny(Collection<Bubble> others){
        for (Bubble other : others) {
            if (intersects(other)) {
                return true;
            }
        }
        return false;
    }

    private boolean intersects(Bubble other) {
        int distanceSquared = (centreX - other.centreX) * (centreX - other.centreX)
            + (centreY - other.centreY) * (centreY - other.centreY);
        return distanceSquared <= (radius + other.radius) * (radius + other.radius);
    }
}