嘿所有
我有一个程序可以通过触摸屏幕(手势检测器)在任何地方绘制气泡, 我想处理一个问题,就是不要通过intersect方法在同一个位置绘制两个气泡 我怎么能这样做?**
答案 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);
}
}