// ----------------------------------------------------------------------- // Vykreslení jednoho bodu do temporální bitmapy (plošné rastrové bitové // mřížky) podle uživatelem předem zvoleného tvaru bodu. // ----------------------------------------------------------------------- private void putPoint(int x, int y) { if (x<3) x=3; // zabránit zápisům if (x>=width-3) x=width-4; // mimo pole (bitmapu) if (y<3) y=3; if (y>=height-3) y=height-3; if (pointShape!=PointShape.Diamond3x3 && pointShape!=PointShape.Diamond5x5) { pixels[y][x]=true; // nastavit prostřední pixel } if (pointShape==PointShape.Cross3x3 || pointShape==PointShape.Diamond3x3 || pointShape==PointShape.Block3x3 || pointShape==PointShape.Cross5x5 || pointShape==PointShape.Block5x5 || pointShape==PointShape.Horizontal3 || pointShape==PointShape.Horizontal5) { pixels[y][x-1]=true; // nastavit pixel nalevo pixels[y][x+1]=true; // a pixel napravo } // od prostředního pixelu if (pointShape==PointShape.Horizontal5 || pointShape==PointShape.Cross5x5 || pointShape==PointShape.Diamond5x5 || pointShape==PointShape.Block5x5) { pixels[y][x-2]=true; // nastavit druhý pixel nalevo pixels[y][x+2]=true; // nastavit druhý pixel napravo } // od prostředního pixelu if (pointShape==PointShape.Cross3x3 || pointShape==PointShape.Diamond3x3 || pointShape==PointShape.Block3x3 || pointShape==PointShape.Cross5x5 || pointShape==PointShape.Block5x5 || pointShape==PointShape.Vertical3 || pointShape==PointShape.Vertical5) { pixels[y-1][x]=true; // nastavit pixel nahoře pixels[y+1][x]=true; // nastavit pixel dole } // od prostředního pixelu if (pointShape==PointShape.Vertical5 || pointShape==PointShape.Cross5x5 || pointShape==PointShape.Diamond5x5 || pointShape==PointShape.Block5x5) { pixels[y-1][x]=true; // nastavit druhý pixel nahoře pixels[y+1][x]=true; // nastavit druhý pixel dole } // od prostředního pixelu if (pointShape==PointShape.XCross3x3 || pointShape==PointShape.Block3x3 || pointShape==PointShape.XCross5x5 || pointShape==PointShape.Diamond5x5 || pointShape==PointShape.Block5x5) { pixels[y-1][x-1]=true; // nastavit čtyři diagonální pixely pixels[y+1][x-1]=true; pixels[y-1][x+1]=true; pixels[y+1][x+1]=true; } if (pointShape==PointShape.XCross5x5 || pointShape==PointShape.Block5x5) { pixels[y-2][x-2]=true; // nastavit čtyři diagonální pixely pixels[y+2][x-2]=true; // ve vzdálenosti 2 pixels[y-2][x+2]=true; // od prostředního pixelu pixels[y+2][x+2]=true; } if (pointShape==PointShape.Block5x5) { pixels[y-2][x-1]=true; // nastavit zbývajících osm pixelů pixels[y+2][x-1]=true; // v bloku 5x5 pixelů pixels[y-2][x+1]=true; pixels[y+2][x+1]=true; pixels[y-1][x-2]=true; pixels[y+1][x-2]=true; pixels[y-1][x+2]=true; pixels[y+1][x+2]=true; } } // ----------------------------------------------------------------------- // Konec metody putPoint(). // -----------------------------------------------------------------------
Zpět na úvodní stránku demonstračního příkladu Diffuse3