1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| public ArrayList<Point> listCases(Point p1, Point p2)
{
int x,y,dx,dy,incrmX,incrmY,dp,NE,SE;
dx = p2.getX()-p1.getX();
dy = p2.getY()-p1.getY();
if (dx>0)
incrmX = 1;
else {
incrmX = -1;
dx *= -1;
}
if (dy>0)
incrmY = 1;
else {
incrmY = -1;
dy *= -1;
}
if (dx>=dy) {
dp=2*dy-dx;
SE=2*dy;
NE=2*(dy-dx);
y=p1.getY();
for(x=p1.getX();x!=p2.getX();x+=incrmX) {
System.out.println(new Point(x,y));
tuiles.add(new Point(x,y));
if (dp<=0)
dp += SE;
else {
dp += NE;
y+=incrmY;
}
}
}
else if (dx<dy) {
dp=2*dx-dy;
SE=2*dx;
NE=2*(dx-dy);
x=p1.getX();
for(y=p1.getY();y!=p2.getY();y+=incrmY) {
System.out.println(new Point(x,y));
tuiles.add(new Point(x,y));
if (dp<=0)
dp += SE;
else {
dp += NE;
x+=incrmX;
}
}
}
return tuiles;
} |
Partager