Dodanie funkcji wyznaczania sektora względnego położenia punktu w sieci kwadratów.
This commit is contained in:
@@ -8,6 +8,40 @@ public class GeomUtils {
|
|||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(GeomUtils.class);
|
private static final Logger logger = LoggerFactory.getLogger(GeomUtils.class);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wyznacza indeks sektora położenia badanego punktu o względnych współrzędnych (punkt odniesienia (0, 0)).
|
||||||
|
*
|
||||||
|
* @param dx względna współrzędna x badanego punktu
|
||||||
|
* @param dy względna współrzędna y badanego punktu
|
||||||
|
* @return indeks sektora z zakresu {0, 1, 2, ..., 7}
|
||||||
|
*/
|
||||||
|
public static int sector(int dx, int dy) {
|
||||||
|
if (0 <= dx && dx < dy) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (0 < dy && dy <= dx) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (-dx < dy && dy <= 0) {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
if (0 < dx && dx <= -dy) {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
if (dy < dx && dx <= 0) {
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
if (dx <= dy && dy < 0) {
|
||||||
|
return 5;
|
||||||
|
}
|
||||||
|
if (0 <= dy && dy < -dx) {
|
||||||
|
return 6;
|
||||||
|
}
|
||||||
|
// (-dy <= dx && dx < 0)
|
||||||
|
return 7;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p> Wyznacznik macierzy (kwadratowej stopnia 3)
|
* <p> Wyznacznik macierzy (kwadratowej stopnia 3)
|
||||||
* [[p.x, p.y, 1],
|
* [[p.x, p.y, 1],
|
||||||
@@ -882,6 +916,24 @@ public class GeomUtils {
|
|||||||
// =====================================================================
|
// =====================================================================
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
int se = sector(0, 0);
|
||||||
|
int sek = sector(0, 9);
|
||||||
|
sek = sector(2, 6);
|
||||||
|
sek = sector(4, 4);
|
||||||
|
sek = sector(5, 2);
|
||||||
|
sek = sector(7, 0);
|
||||||
|
sek = sector(5, -2);
|
||||||
|
sek = sector(5, -5);
|
||||||
|
sek = sector(2, -5);
|
||||||
|
sek = sector(0, -5);
|
||||||
|
sek = sector(-4, -6);
|
||||||
|
sek = sector(-3, -3);
|
||||||
|
sek = sector(-5, -1);
|
||||||
|
sek = sector(-4, 0);
|
||||||
|
sek = sector(-5, 3);
|
||||||
|
sek = sector(-4, 4);
|
||||||
|
sek = sector(-1, 4);
|
||||||
|
|
||||||
|
|
||||||
// Coord.Grid[] segments = new Coord.Grid[4];
|
// Coord.Grid[] segments = new Coord.Grid[4];
|
||||||
// segments[0] = new Coord.Grid(1, 1);
|
// segments[0] = new Coord.Grid(1, 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user