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

Zdrojový text metody initSeed()


// -----------------------------------------------------------------------
// Inicializace semínka - počátečních bodů ve fraktálním objektu, ke kterým
// se v průběhu simulace přidávají další body.
// -----------------------------------------------------------------------
private void initSeed() {
    int wh=width/2;
    int hh=height/2;
    int wh1=width/3;
    int wh2=2*width/3;
    int hh1=height/3;
    int hh2=2*height/3;
    switch (seedShape) {
        case SeedShape.OnePoint:                // generuje se pouze jeden bod
            pixels[hh][wh]=true;
            break;
        case SeedShape.TwoPoints:               // generují se dva
            pixels[hh][wh1]=true;               // symetricky postavené body
            pixels[hh][wh2]=true;
            break;
        case SeedShape.ThreePoints:             // generují se tři
            pixels[hh1][wh]=true;               // symetricky postavené body
            pixels[hh2][wh1]=true;
            pixels[hh2][wh2]=true;
            break;
        case SeedShape.FourPoints:              // generují se čtyři body
            pixels[hh1][wh1]=true;              // ve vrcholech čtverce
            pixels[hh2][wh1]=true;
            pixels[hh1][wh2]=true;
            pixels[hh2][wh2]=true;
            break;
        case SeedShape.Line:                    // generuje se kontinuální
            for (int i=wh1; i<=wh2; i++)        // úsečka uprostřed bitmapy
                pixels[hh][i]=true;
            break;
        case SeedShape.BottomLine:              // generuje se kontinuální
            for (int i=0; i<width; i++)         // úsečka na spodním okraji bitmapy
                pixels[height-1][i]=true;
            break;
        case SeedShape.Square:                  // generuje se čtverec
            for (int i=wh1; i<=wh2; i++) {      // uprostřed bitmapy
                pixels[hh1][i]=true;
                pixels[hh2][i]=true;
            }
            for (int i=hh1; i<=hh2; i++) {
                pixels[i][wh1]=true;
                pixels[i][wh2]=true;
            }
            break;
        case SeedShape.Border:                  // generuje se okraj
            for (int i=0; i<width; i++) {       // okolo celé bitmapy
                pixels[0][i]=true;
                pixels[height-1][i]=true;
            }
            for (int i=0; i<height; i++) {
                pixels[i][0]=true;
                pixels[i][width-1]=true;
            }
            break;
        case SeedShape.SmallCircle:             // generuje se malá kružnice
            {                                   // uprostřed bitmapy
            double r=wh/4.0;
            for (int i=0; i<1000; i++) {
                double x=wh+r*Math.cos((double)i);
                double y=hh+r*Math.sin((double)i);
                pixels[(int)x][(int)y]=true;
            }
            }
            break;
        case SeedShape.NormalCircle:            // generuje se větší kružnice
            {                                   // uprostřed bitmapy
            double r=wh/2.0;
            for (int i=0; i<1000; i++) {
                double x=wh+r*Math.cos((double)i);
                double y=hh+r*Math.sin((double)i);
                pixels[(int)x][(int)y]=true;
            }
            }
            break;
        case SeedShape.BigCircle:               // generuje se velká kružnice
            {                                   // uprostřed bitmapy
            double r=wh-9.0;
            for (int i=0; i<1000; i++) {
                double x=wh+r*Math.cos((double)i);
                double y=hh+r*Math.sin((double)i);
                pixels[(int)x][(int)y]=true;
            }
            }
            break;
        default:
            pixels[hh][wh]=true;
            break;
    }
}

// -----------------------------------------------------------------------
// Konec metody initSeed().
// -----------------------------------------------------------------------