Delphi - TRadialWipeEffect komponens

Bitmap effektek 10. rész

forráskód letöltése

A RadialWipe effekt háromféle képváltást tud megjeleníteni. Az első úgy néz ki, mintha egy óra mutatója rajzolná meg a képet. A második ettől annyiban tér el, hogy az óramutató járásával ellentétes irányban is elindul a kép kirajzolása. A harmadik változat az, amikor a bal felső sarokból indul a kirajzolás, és egy negyed kört leírva jeleníti meg a képet. A mellékelt példaprogram megnyitása előtt a RadialWipeEffect.pas-ban lévő komponenst telepítenie kell a Delphi alá. A komponens telepítéséhez szükség van továbbá a cikksorozat első részéhez mellékelt BaseEffect unit-ra.

A képváltás módját a WipeStyle property-ben választhatjuk ki:
  • wsClock: az óramutató járásával megegyező irányban indul a kirajzolás a kép középpontjából;
  • wsWedge: annyiban különbözik a wsClock-tól, hogy itt két irányban indul el a kirajzolás;
  • wsRadial: a kép bal felső sarkából indul a megjelenítés.

A kép fázisainak előállításához minden lépésben egy maszkot hozunk létre, amin a megjelenítendő kép az adott fázisban megjelenítendő pixeleit adjuk meg. A PrepareBitmap eljárásban történik a rajzolás, ami egy koordináta körül megfelelő szögben elforgatott háromszögek megrajzolásával történik. A koordináta a wsClock és wsWedge módoknál a kép középpontja, míg a wsRadial esetében a kép bal felső sarka.
A maszk elkészülte után a képet a CopyMask eljárással másoljuk a célképre. Ennek az eljárásnak a leírása a sorozat első részében van részletezve.


Bitmap effektek cikksorozat