Demonstrační aplikace pro vytváření fraktálů pomocí L-IFS systémů

Zdrojový text metody chooseControlPoint()


// ------------------------------------------------------------------------
// Tato metoda vybere číslo další transformace pro generování fraktálního
// objektu pomocí L-IFS systému. Při výběru další transformace se musí
// vycházet z matice posloupnosti transformací, tj. předchozí a nově
// vybraná transformace musí být v matici povolena.
// ------------------------------------------------------------------------
int chooseControlPoint(int oldTransformation,  // index předchozí transformace
                       TMatrix matrix,         // matice posloupnosti transformací
                       int activeVertexes)     // počet uzlů v grafu (transformací)
{
    int newTransformation;
    Random rand=new Random(0);                 // vytvořit generátor náhodných čísel
    do {                                       // vygenerovat číslo nové transormace
        newTransformation=(int)(r.nextDouble()*activeVertexes);
                                               // test na korektnost vybrané transformace
    } while (! matrix[oldTransformation][newTransformation]);
    return newTransformation;                  // vrátit číslo vybrané transformace
}

// ------------------------------------------------------------------------
// Konec metody chooseControlPoint()
// ------------------------------------------------------------------------