První demonstrační aplikace pro simulaci difúze

Zdrojový text metody applyDiffuse()


// -----------------------------------------------------------------------
// Vlastní aplikace prvního algoritmu difúze, který je založen
// na připojování náhodně generovaných bodů k vytvářenému objektu
// -----------------------------------------------------------------------
private void applyDiffuse() {
    boolean  doneInnerLoop;
    int      counter=0;
    int      xi, yi;
    int      i=0;

    do {                                        // vnější smyčka, která se zastaví
        doneInnerLoop=false;                    // po nastavení ukončovací podmínky
        do {                                    // vnitřní smyčka
            double x=Math.random()*(float)(width-2)+1;  // generovat bod
            double y=Math.random()*(float)(height-2)+1;
            xi=(int)x;
            yi=(int)y;
            if (neighboor(neighboorType, xi, yi)) { // pokud se bod nachází v blízkosti obrazce
                putPoint(xi, yi);               // přidat ho do fraktálu
                doneInnerLoop=true;             // a ukončit vnitřní smyčku
            }
        } while (!doneInnerLoop);
        counter++;
        if (counter==50) {                      // průběžný výpis práce programu
            label.setText("Points: "+String.valueOf(i));
            counter=0;
        }
        i++;
    } while (!checkStopCondition(i, xi, yi));   // test na ukončení vnější smyčky
}

// -----------------------------------------------------------------------
// Konec metody applyDiffuse().
// -----------------------------------------------------------------------