|
|
Grafika létrehozása Corel Draw-ban
Corel 3. rész
|
|
Példaprogram letöltése
7901 bájt
|
Soron következő CorelDraw példánkban rajzolni fogunk, valamint megnézzük, hogy egy objektumot hogyan tudunk textúrával kitölteni.
Az előző részben szöveget jelenítettünk csak meg, most itt az ideje, hogy rajzoljunk is. A példaprogram egy Jing-Jang szimbólumot rajzol meg, némi "körítéssel".
A rajzolást a Button1 OnClick eseményénél hajtjuk végre:
procedure TForm1.Button1Click(Sender: TObject);
begin
Csatlakozunk a CorelDraw-hoz.
Draw := CreateOleObject('CorelDraw.Automation.9');
Létrehozunk egy új dokumentumot, és megjelenítjük azt, valamint beállítjuk a nézet nagyítását az oldal szélességéhez viszonyítva.
Draw.FileNew;
Draw.SetDocVisible(True);
Draw.ZoomToWidth;
Háttérnek rajzolunk egy kört, amit egy mintázattal töltünk ki. A nagy számok a paraméterekben ne ijesszenek meg senkit, ez azért van, mert a koordinátákat mikronban kell megadni.
A CreateEllipse függvénnyel tudunk kört, ellipszist, vagy körívet, körcikket rajzolni úgy, hogy a befoglaló négyszög koordinátáit adjuk meg a lap középpontjához képest relatívan. A függvénynek összesen 7 paramétere van:
- Top: a befoglaló négyszög felső szélének koordinátája.
- Left: a befoglaló négyszög bal szélének koordinátája.
- Bottom: a befoglaló négyszög alsó szélének koordinátája.
- Right: a befoglaló négyszög jobb szélének koordinátája.
- StartAngle: kezdő szög.
- EndAngle: befejező szög. Ha a kezdő szög és a befejező szög egyaránt 0, akkor teljes kört, illetve ellipszist rajzolunk.
- Arc: ha nem teljes kört vagy ellipszist rajzolunk, akkor true érték esetén körcikket (kitöltött), míg false esetén csak körívet rajzol (egyszerű vonal, kitöltés nélkül).
Draw.CreateEllipse(-700000, -700000, 700000, 700000, 0, 0, 0);
Az ApplyTextureFill függvénnyel töltjük ki az imént megrajzolt kört mintázattal. Ennek a függvénynek a következő paramétereket kell megadnunk:
- TextureLibrary: a textúra library neve (pl. "Styles").
- TextureName: a minta neve (pl "Sky 2 Colors").
- TextureStyle: a minta stílusa. Ha a textúra library neve "Samples 5", akkor a stílus nevét "CDR5:"-tel kell kezdeni. Például "CDR5:Blue Valley".
- TextureWidth: ha az érték kevesebb, mint 500, és a ScaleWidthObject be van állítva, akkor az objektum szélessége százalékban, egyébként a tényleges méret mikronban.
- TextureHeight: ha az érték kevesebb, mint 500, és a ScaleWidthObject be van állítva, akkor az objektum magassága százalékban, egyébként a tényleges méret mikronban.
- TextureOffsetX: a középponthoz viszonyított vízszintes eltolás.
- TextureOffsetY: a középponthoz viszonyított függőleges eltolás.
- RowOffset: true érték esetén sor, false esetén oszlop szerinti eltolás.
- RowColumnOffset: a sor vagy oszlop szerinti eltolás mértéke százalékban.
- ScaleWithObject: true esetén az objektum méretéhez igazítja a kitöltést.
- RotationAngle: a kitöltés elforgatásának szöge (1 millióval meg kell szorozni).
- SkewAngle: a kitöltés torzításának szöge (1 millióval meg kell szorozni).
Draw.ApplyTextureFill('Styles', 'Sky 2 Colors', 'Sky 2 Colors', 100, 100, 0, 0, 0, 0, -1, 0, 0);
Első lépés: rajzolunk egy félkört, ami a szimbólum bal oldala lesz, és azt kitöltjük fekete színnel. A kitöltést az ApplyUniformFillColor függvény végzi.
Draw.CreateEllipse(-500000, -500000, 500000, 500000, 90000000, 270000000, -1);
Draw.StoreColor(5, 0, 0, 0, 0);
Draw.ApplyUniformFillColor;
Második lépés: rajzolunk még egy félkört, ami az előzőnek pont a tükörképe lesz. A két félkör együtt egy kört alkot. Ezt a félkört fehérrel töltjük ki.
Draw.CreateEllipse(-500000, -500000, 500000, 500000, 270000000, 90000000, -1);
Draw.StoreColor(5, 255, 255, 255, 0);
Draw.ApplyUniformFillColor;
Harmadik lépés: rajzolunk egy kört a függőleges átmérő alsó felére, aminek átmérője pontosan fele a két félkör által alkotott kör átmérőjének. Ennek színe fehér lesz.
Draw.CreateEllipse(-500000, -250000, 0, 250000, 0, 0, 0);
Draw.StoreColor(5, 0, 0, 0, 0);
Draw.ApplyUniformFillColor;
Negyedik lépés: egy ugyanakkora kört rajzolunk, mint az előbb, pontosan az előző fölé. Ennek színe fehér lesz. Itt viszont már a körvonal színét is meg kell változtatnunk, hogy ne látszódjon, ezért ez is fehér lesz.
Draw.CreateEllipse(500000, -250000, 0, 250000, 0, 0, 0);
Draw.StoreColor(5, 255, 255, 255, 0);
Draw.SetOutlineColor;
Draw.StoreColor(5, 255, 255, 255, 0);
Draw.ApplyUniformFillColor;
Ötödik lépés: rajzolunk egy kis fehér kört az alsó fekete kör közepébe.
Draw.CreateEllipse(-125000, -125000, -375000, 125000, 0, 0, 0);
Draw.StoreColor(5, 255, 255, 255, 0);
Draw.ApplyUniformFillColor;
Hatodik lépés: rajzolunk egy kis fekete kört a felső fehér kör közepébe.
Draw.CreateEllipse(375000, -125000, 125000, 125000, 0, 0, 0);
Draw.StoreColor(5, 0, 0, 0, 0);
Draw.ApplyUniformFillColor;
Frissítjük a képernyőt, és készen is vagyunk!
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2001 évkönyv 316. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|