Skip to content

Instantly share code, notes, and snippets.

@redhead
Created January 14, 2011 12:25

Revisions

  1. redhead revised this gist Jan 17, 2011. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.java
    Original file line number Diff line number Diff line change
    @@ -12,7 +12,7 @@ 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 X, kde se nejaky kruh dotyka shora
    double maxY = 0; // nejvetsi Y, kde se nejaky kruh dotyka shora

    // prochazime postupne vsechny kruznice
    for(int i = 0; i < pole.length; i++) {
  2. redhead revised this gist Jan 14, 2011. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions gistfile1.java
    Original file line number Diff line number Diff line change
    @@ -20,16 +20,16 @@ public static double obsah(Kruznice[] pole) {
    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
    minX = k.x + k.r; // pokud je vetsi nez drive nalezene maximum X, ulozime tuto hodnotu
    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
    minX = k.y + k.r;
    maxY = k.y + k.r;

    if(k.y - k.r < minY) // to samy pro minimalni Y
    minX = k.y - k.r;
    minY = k.y - k.r;
    }

    // delku strany podel x-ove osy zjistime odectenim meznich hodnot X
  3. redhead revised this gist Jan 14, 2011. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions gistfile1.java
    Original file line number Diff line number Diff line change
    @@ -20,10 +20,10 @@ public static double obsah(Kruznice[] pole) {
    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
    minX = k.x + k.r; // pokud je vetsi nez drive nalezene maximum X, ulozime tuto hodnotu
    minX = 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
    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
    minX = k.y + k.r;
  4. redhead revised this gist Jan 14, 2011. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions gistfile1.java
    Original file line number Diff line number Diff line change
    @@ -6,6 +6,7 @@ public class Kruznice {
    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
  5. redhead created this gist Jan 14, 2011.
    41 changes: 41 additions & 0 deletions gistfile1.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,41 @@
    // 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 X, 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
    minX = 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
    minX = k.y + k.r;

    if(k.y - k.r < minY) // to samy pro minimalni Y
    minX = 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
    }