Created
January 14, 2011 12:25
-
-
Save redhead/779544 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// jednotliva Kruznice je reprezentovana touto tridou Kruznice: | |
public class Kruznice { | |
public double x; // x stredu | |
public double y; // y stredu | |
public double r; // polomer | |
} | |
///////////////////////////////////////////////////////////////////////////////// | |
// metoda pro vypocet obsahu nejmensiho obdelniku: | |
public static double obsah(Kruznice[] pole) { | |
double minX = 0; // nejmensi X, kde se nejaky kruh dotyka zleva | |
double maxX = 0; // nejvetsi X, kde se nejaky kruh dotyka zprava | |
double minY = 0; // nejmensi Y, kde se nejaky kruh dotyka zdola | |
double maxY = 0; // nejvetsi Y, kde se nejaky kruh dotyka shora | |
// prochazime postupne vsechny kruznice | |
for(int i = 0; i < pole.length; i++) { | |
// pro prehlednost ulozim kazdou kruznici v cyklu do promenne k | |
Kruznice k = pole[i]; // pole[i] obsahuje instanci tridy Kruznice (reprezentuje jednu kruznici) | |
if(k.x + k.r > maxX) // x+r je nejvetsi X-ova hodnota v kruhu | |
maxX = k.x + k.r; // pokud je vetsi nez drive nalezene maximum X, ulozime tuto hodnotu | |
if(k.x - k.r < minX) // x-r je nejmensi X-ova hodnota v kruhu | |
minX = k.x - k.r; // pokud je mensi nez drive nalezene minimum X, ulozime tuto hodnotu | |
if(k.y + k.r > maxY) // to samy pro maximalni Y | |
maxY = k.y + k.r; | |
if(k.y - k.r < minY) // to samy pro minimalni Y | |
minY = k.y - k.r; | |
} | |
// delku strany podel x-ove osy zjistime odectenim meznich hodnot X | |
double x = maxX - minX; | |
// delku strany podel y-ove osy zjistime odectenim meznich hodnot Y | |
double y = maxY - minY; | |
return x * y; // vratime obsah obdelniku x*y | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment