C# - Tetszőleges háttérrel kitöltött grafikai objektumok rajzolása

Graphics osztály 10. rész

forráskód letöltése
Sorozatunk eddigi részeiben számos olyan függvénnyel foglalkoztunk, mely képes arra, hogy valamilyen grafikai objektumot (ellipszis, téglalap, stb.) rajzoljon ki. Ezeknél mindig csak a körvonal tulajdonságáról rendelkezhettünk és az általuk közrezárt terület átlátszó maradt. Ha objektumaink hátterét szeretnénk valamilyen módon kitölteni (egy szín, színátmenet, kitöltő minta, stb.), akkor erre is van lehetőségünk. Mostani példában sorra vesszük az összes olyan függvényt, mely e feladatra alkalmas.
A függvények eddig a Draw szóval kezdődtek, például DrawEllipse, DrawRectangle. Ha a hátterüket is szeretnénk kitölteni, akkor a Fill kezdetű függvényeket kell használnunk, például FillEllipse, FillRectangle. Ha ismerjük mondjuk a DrawRectangle függvényt, akkor szinte azonnal használni tudjuk a FillRectangle függvényt is, mivel ezeknek paraméter listája csak abban tér el, hogy most nem egy Pen objektumot kell megadni, mely a körvonalat írja le, hanem egy Brush osztályból származott osztály példányát, mely a hátteret adja meg.
A Brush egy absztrakt osztály, melyből az alábbiak származnak:
Brush-ból származott osztályok Leírás
System.Drawing.Drawing2D.HatchBrush előre meghatározott kitöltő minta
System.Drawing.Drawing2D.LinearGradientBrush színátmenet
System.Drawing.Drawing2D.PathGradientBrush speciális színátmenet
System.Drawing.SolidBrush egy szín
System.Drawing.TextureBrush Bitmap kitöltő minta
Ezeket az osztályokat használhatjuk fel a hátterek meghatározásához.
Nézzük most milyen függvények állnak rendelkezésünkre.
FillClosedCurve
Osztály: System.Drawing.Graphics
public void FillClosedCurve(
Brush brush,
Point[] points
);
A FillClosedCurve függvénnyel úgy rajzolhatunk meg egy görbét, hogy megadjuk azokat a pontokat egy tömbbe, melyeken szeretnénk, hogy a görbe vonala áthaladjon. A megrajzolt görbe kezdő és végpontja is összekötésre kerül, így mindig egy zárt alakzatot kapunk.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
Point[] points
A points paraméterben a görbe sarokpontjait sorolhatjuk fel.
FillClosedCurve
Osztály: System.Drawing.Graphics
public void FillClosedCurve(
Brush brush,
PointF[] points
);
A FillClosedCurve függvénnyel úgy rajzolhatunk meg egy görbét, hogy megadjuk azokat a pontokat egy tömbbe, melyeken szeretnénk, hogy a görbe vonala áthaladjon. A megrajzolt görbe kezdő és végpontja is összekötésre kerül, így mindig egy zárt alakzatot kapunk.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg a háttért leíró objektumot.
PointF[] points
A points paraméterben a görbe sarokpontjait sorolhatjuk fel PointF típusban.
FillClosedCurve
Osztály: System.Drawing.Graphics
public void FillClosedCurve(
Brush brush,
Point[] points,
FillMode fillmode
);
A FillClosedCurve függvénnyel úgy rajzolhatunk meg egy görbét, hogy megadjuk azokat a pontokat egy tömbbe, melyeken szeretnénk, hogy a görbe vonala áthaladjon. A megrajzolt görbe kezdő és végpontja is összekötésre kerül, így mindig egy zárt alakzatot kapunk.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
Point[] points
A points paraméterben a görbe sarokpontjait sorolhatjuk fel.
FillMode fillmode
Rajzolás módja, mely Alternate, vagy Winding értéket kaphat.
FillClosedCurve
Osztály: System.Drawing.Graphics
public void FillClosedCurve(
Brush brush,
PointF[] points,
FillMode fillmode
);
A FillClosedCurve függvénnyel úgy rajzolhatunk meg egy görbét, hogy megadjuk azokat a pontokat egy tömbbe, melyeken szeretnénk, hogy a görbe vonala áthaladjon. A megrajzolt görbe kezdő és végpontja is összekötésre kerül, így mindig egy zárt alakzatot kapunk.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
PointF[] points
A points paraméterben a görbe sarokpontjait sorolhatjuk fel.
FillMode fillmode
Rajzolás módja, mely Alternate, vagy Winding értéket kaphat.
FillClosedCurve
Osztály: System.Drawing.Graphics
public void FillClosedCurve(
Brush brush,
Point[] points,
FillMode fillmode,
float tension
);
A FillClosedCurve függvénnyel úgy rajzolhatunk meg egy görbét, hogy megadjuk azokat a pontokat egy tömbbe, melyeken szeretnénk, hogy a görbe vonala áthaladjon. A megrajzolt görbe kezdő és végpontja is összekötésre kerül, így mindig egy zárt alakzatot kapunk.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
Point[] points
A points paraméterben a görbe sarokpontjait sorolhatjuk fel.
FillMode fillmode
Rajzolás módja, mely Alternate, vagy Winding értéket kaphat.
float tension
A görbe feszességének értéke, mely 0 és 1 közötti érték lehet. Nulla esetén a megadott pontok egyenes vonallakkal lesznek összekötve, míg nullánál minél nagyobb szám esetén a görbe íve is egyre nagyobb lesz.
FillClosedCurve
Osztály: System.Drawing.Graphics
public void FillClosedCurve(
Brush brush,
PointF[] points,
FillMode fillmode,
float tension
);
A FillClosedCurve függvénnyel úgy rajzolhatunk meg egy görbét, hogy megadjuk azokat a pontokat egy tömbbe, melyeken szeretnénk, hogy a görbe vonala áthaladjon. A megrajzolt görbe kezdő és végpontja is összekötésre kerül, így mindig egy zárt alakzatot kapunk.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
PointF[] points
A points paraméterben a görbe sarokpontjait sorolhatjuk fel.
FillMode fillmode
Rajzolás módja, mely Alternate, vagy Winding értéket kaphat.
float tension
A görbe feszességének értéke, mely 0 és 1 közötti érték lehet. Nulla esetén a megadott pontok egyenes vonallakkal lesznek összekötve, míg nullánál minél nagyobb szám esetén a görbe íve is egyre nagyobb lesz.
FillEllipse
Osztály: System.Drawing.Graphics
public void FillEllipse(
Brush brush,
Rectangle rect
);
A FillEllipse függvénnyel egy megadott ecsettel egy adott méretű ellipszis rajzolható.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
Rectangle rect
A rect paraméterben kell megadnunk annak a befoglaló téglalapnak a méreteit Rectangle típusban, mely meghatározza az ellipszis méretét és pozícióját
FillEllipse
Osztály: System.Drawing.Graphics
public void FillEllipse(
Brush brush,
RectangleF rect
);
A FillEllipse függvénnyel egy megadott ecsettel egy adott méretű ellipszis rajzolható.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
RectangleF rect
A rect paraméterben kell megadnunk annak a befoglaló téglalapnak a méreteit Rectangle típusban, mely meghatározza az ellipszis méretét és pozícióját
FillEllipse
Osztály: System.Drawing.Graphics
public void FillEllipse(
Brush brush,
int x,
int y,
int width,
int height
);
A FillEllipse függvénnyel egy megadott ecsettel egy adott méretű ellipszis rajzolható.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
int x
Az x paraméterben kell megadnunk a befoglaló téglalapnak a bal szélét.
int y
Az y paraméterben kell megadnunk a befoglaló téglalapnak a tetejét.
int width
A width paraméterben kell megadnunk a befoglaló téglalapnak a szélességét.
int height
A height paraméterben kell megadnunk a befoglaló téglalapnak a magasságát.
FillEllipse
Osztály: System.Drawing.Graphics
public void FillEllipse(
Brush brush,
float x,
float y,
float width,
float height
);
A FillEllipse függvénnyel egy megadott ecsettel egy adott méretű ellipszis rajzolható.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
float x
Az x paraméterben kell megadnunk a befoglaló téglalapnak a bal szélét.
float y
Az y paraméterben kell megadnunk a befoglaló téglalapnak a tetejét.
float width
A width paraméterben kell megadnunk a befoglaló téglalapnak a szélességét.
float height
A height paraméterben kell megadnunk a befoglaló téglalapnak a magasságát.
FillPie
Osztály: System.Drawing.Graphics
public void FillPie(
Brush brush,
Rectangle rect,
float startAngle,
float sweepAngle
);
Körcikk rajzolására alkalmas a FillPie függvény.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
Rectangle rect
A rect paraméter a kört befoglaló téglalap méretét határozza meg.
float startAngle
A startAngle a körből kivágandó rész szögét határozza meg. A kivágás mindig a nulla fok és az itt megadott fok között történik.
float sweepAngle
A sweepAngle paraméterben megadott szöggel forgathatjuk el a grafikát, így a kivágott részt bárhol elhelyezhetjük a körben.
FillPie
Osztály: System.Drawing.Graphics
public void FillPie(
Brush brush,
int x,
int y,
int width,
int height,
int startAngle,
int sweepAngle
);
Körcikk rajzolására alkalmas a FillPie függvény.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
int x
A kirajzolandó kört befoglaló téglalap bal szélét adhatjuk meg az x paraméterben.
int y
A kirajzolandó kört befoglaló téglalap tetejét adhatjuk meg az y paraméterben.
int width
A kirajzolandó kört befoglaló téglalap szélességét adhatjuk meg a width paraméterben.
int height
A kirajzolandó kört befoglaló téglalap magasságát adhatjuk meg a height paraméterben.
int startAngle
A startAngle a körből kivágandó rész szögét határozza meg. A kivágás mindig a nulla fok és az itt megadott fok között történik.
int sweepAngle
A sweepAngle paraméterben megadott szöggel forgathatjuk el a grafikát, így a kivágott részt bárhol elhelyezhetjük a körben.
FillPie
Osztály: System.Drawing.Graphics
public void FillPie(
Brush brush,
float x,
float y,
float width,
float height,
float startAngle,
float sweepAngle
);
Körcikk rajzolására alkalmas a FillPie függvény.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
float x
A kirajzolandó kört befoglaló téglalap bal szélét adhatjuk meg az x paraméterben.
float y
A kirajzolandó kört befoglaló téglalap tetejét adhatjuk meg az y paraméterben.
float width
A kirajzolandó kört befoglaló téglalap szélességét adhatjuk meg a width paraméterben.
float height
A kirajzolandó kört befoglaló téglalap magasságát adhatjuk meg a height paraméterben.
float startAngle
A startAngle a körből kivágandó rész szögét határozza meg. A kivágás mindig a nulla fok és az itt megadott fok között történik.
float sweepAngle
A sweepAngle paraméterben megadott szöggel forgathatjuk el a grafikát, így a kivágott részt bárhol elhelyezhetjük a körben.
FillPolygon
Osztály: System.Drawing.Graphics
public void FillPolygon(
Brush brush,
Point[] points
);
A FillPolygon függvény segítségével több pont között rajzolhatunk egyeneseket úgy, hogy az első egyenes végpontja egybeesik a következő egyenes kezdőpontjával, illetve az utolsó egyenes végpontja automatikusan összekötésre kerül az első egyenes kezdőpontjával.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
Point[] points
A points tömbben kell felsorolni azokat a koordináta pontokat, melyek között szeretnénk egyeneseket húzni. A rajzolás a tömbben lévő sorrend alapján történik.
FillPolygon
Osztály: System.Drawing.Graphics
public void FillPolygon(
Brush brush,
PointF[] points
);
A FillPolygon függvény segítségével több pont között rajzolhatunk egyeneseket úgy, hogy az első egyenes végpontja egybeesik a következő egyenes kezdőpontjával, illetve az utolsó egyenes végpontja automatikusan összekötésre kerül az első egyenes kezdőpontjával.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
PointF[] points
A points tömbben kell felsorolni azokat a koordináta pontokat, melyek között szeretnénk egyeneseket húzni. A rajzolás a tömbben lévő sorrend alapján történik.
FillPolygon
Osztály: System.Drawing.Graphics
public void FillPolygon(
Brush brush,
Point[] points,
FillMode fillMode
);
A FillPolygon függvény segítségével több pont között rajzolhatunk egyeneseket úgy, hogy az első egyenes végpontja egybeesik a következő egyenes kezdőpontjával, illetve az utolsó egyenes végpontja automatikusan összekötésre kerül az első egyenes kezdőpontjával.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
Point[] points
A points tömbben kell felsorolni azokat a koordináta pontokat, melyek között szeretnénk egyeneseket húzni. A rajzolás a tömbben lévő sorrend alapján történik.
FillMode fillMode
Rajzolás módja, mely Alternate, vagy Winding értéket kaphat.
FillPolygon
Osztály: System.Drawing.Graphics
public void FillPolygon(
Brush brush,
PointF[] points,
FillMode fillMode
);
A FillPolygon függvény segítségével több pont között rajzolhatunk egyeneseket úgy, hogy az első egyenes végpontja egybeesik a következő egyenes kezdőpontjával, illetve az utolsó egyenes végpontja automatikusan összekötésre kerül az első egyenes kezdőpontjával.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
PointF[] points
A points tömbben kell felsorolni azokat a koordináta pontokat, melyek között szeretnénk egyeneseket húzni. A rajzolás a tömbben lévő sorrend alapján történik.
FillMode fillMode
Rajzolás módja, mely Alternate, vagy Winding értéket kaphat.
FillRectangle
Osztály: System.Drawing.Graphics
public void FillRectangle(
Brush brush,
Rectangle rect
);
A FillRectangle függvény egy adott méretű téglalapot rajzol meg, melynek háttere kitöltött.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
Rectangle rect
A rect paraméterben kell megadnunk a téglalapnak a pozícióját és méreteit Rectangle típusban.
FillRectangle
Osztály: System.Drawing.Graphics
public void FillRectangle(
Brush brush,
RectangleF rect
);
A FillRectangle függvény egy adott méretű téglalapot rajzol meg, melynek háttere kitöltött.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
RectangleF rect
A rect paraméterben kell megadnunk a téglalapnak a pozícióját és méreteit Rectangle típusban.
FillRectangle
Osztály: System.Drawing.Graphics
public void FillRectangle(
Brush brush,
int x,
int y,
int width,
int height
);
A FillRectangle függvény egy adott méretű téglalapot rajzol meg, melynek háttere kitöltött.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
int x
Az x paraméterben kell megadnunk a téglalapnak a bal szélét.
int y
Az y paraméterben kell megadnunk a téglalapnak a tetejét.
int width
A width paraméterben kell megadnunk a téglalapnak a szélességét.
int height
A height paraméterben kell megadnunk a téglalapnak a magasságát.
FillRectangle
Osztály: System.Drawing.Graphics
public void FillRectangle(
Brush brush,
float x,
float y,
float width,
float height
);
A FillRectangle függvény egy adott méretű téglalapot rajzol meg, melynek háttere kitöltött.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
float x
Az x paraméterben kell megadnunk a téglalapnak a bal szélét.
float y
Az y paraméterben kell megadnunk a téglalapnak a tetejét.
float width
A width paraméterben kell megadnunk a téglalapnak a szélességét.
float height
A height paraméterben kell megadnunk a téglalapnak a magasságát.
FillRectangles
Osztály: System.Drawing.Graphics
public void FillRectangles(
Brush brush,
Rectangle[] rects
);
A FillRectangles függvénnyel tetszőleges számú és méretű téglalapot rajzolhatunk meg.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
Rectangle[] rects
A kirajzolandó téglalapokat leíró tömböt a rects paraméterben kell megadnunk. A tömb minden eleme egy Rectangle típusban írja le az adott téglalap pozícióját és méretét.
FillRectangles
Osztály: System.Drawing.Graphics
public void FillRectangles(
Brush brush,
RectangleF[] rects
);
A FillRectangles függvénnyel tetszőleges számú és méretű téglalapot rajzolhatunk meg.
Paraméterek
Brush brush
A brush paraméterben adhatjuk meg háttért leíró objektumot.
RectangleF[] rects
A kirajzolandó téglalapokat leíró tömböt a rects paraméterben kell megadnunk. A tömb minden eleme egy RectangleF típusban írja le az adott téglalap pozícióját és méretét.

Graphics osztály cikksorozat