Delphi - TWheelEffect komponens

Bitmap effektek 12. rész

forráskód letöltése
A Wheel effektnél a megjelenítendő képet úgy rajzoljuk meg, mintha egy megadott számú „küllővel” rendelkező kereket elforgatnánk, és a küllők nyomában megjelenne a kép. Ha csak négy küllő van, akkor elég egy 90 fokos elforgatás, hogy a teljes kép megjelenjen.
A mellékelt példaprogram megnyitása előtt a WheelEffect.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.
Egy küllő esetében a teljes elforgatáshoz 400 lépés kell (a GradToRad függvény használata miatt nem 360 fok!), ezért ezt kell elosztani a küllők számával. Mivel ez nem egy egész szám, ezért még megtoldjuk egy lépéssel, így biztosak lehetünk benne, hogy a teljes kép kirajzolásra kerül.
A PrepareBitmap eljárásban kiszámoljuk az aktuális lépésszámból az egyes küllőkhöz tartozó koordinátákat, valamint négy egységgel (fokkal) eltolva minden küllőhöz egy-egy koordinátát. A kép középpontjával együtt így minden küllőhöz tartozik három koordináta, amik felhasználásával rajzolunk egy háromszöget. A háromszögnek csak az egyik csúcspontja látszik, ami a kép középpontjában van, a másik kettő a képen kívül helyezkedik el. A háromszög alakzatban megjelenik a megjelenítendő kép azon részlete, ami pont a háromszög alatt van. Minden lépésben kirajzolunk egy-egy háromszöget, természetesen a megfelelő szögben elforgatva. A háromszögeket egy monokróm bitképre másoljuk, ami egy maszkot fog eredményezni. Ezt a maszkot felhasználva a CopyMask eljárásban a megjelenítendő kép megfelelő részletét átmásoljuk a célképre.

Bitmap effektek cikksorozat