Vymyslete a implementujte animaci v rovině nebo prostoru kreslenou pouze pomocí rovinných mnohoúhelníků. Animace musí být počítána po jednotlivých snímcích ("off-line rendering"), nakonec vyrobíte video-soubor např. programem ffmpeg.
Jako základ poslouží projekt 075animation z repository grcis. Je připravena jednoduchá aplikace, která umí opakovaně pouštět vaši metodu Animation.DrawFrame() a výsledky zapisovat do jednotlivých PNG souborů. Výpočet se provádí v separátním vlákně, takže jej lze v případě potřeby zastavit tlačítkem Stop.
Pohyb nebo změna tvarů v rovině, 3D efekt byste museli sami napodobit kreslením "odzadu-dopředu" (tzv. malířův algoritmus). Fantazii se meze nekladou, pouze musíte snímky animace kompletně nakreslit vaším programem a pomocí omezených prostředků třídy Canvas (jen vybarvované polygony, viz níže). To znamená, že mi odevzdáte zdrojový soubor, ze kterého půjde bez použití dalších nástrojů (až na encoding videa nebo doplnění zvukové stopy) animaci vyrobit.
Výstup musíte realizovat přes danou třídu Canvas, která má k dispozici následující API:
Metoda Animation.DrawFrame() dostane údaje o čase (viz pilotní implementaci) a referenci na kreslicí objekt Canvas. Metoda má přes něj k dispozici i údaje určující velikost snímku.
Nemůžete předpokládat nic o pořadí vykreslování jednotlivých snímků animace. Jednotlivá vlákna výpočtu mohou kreslit snímky v libovolném pořadí. Na začátku výpočtu animace (anebo před jednotlivým snímkem) se spouští vaše metoda Animation.Init(), do ní můžete dát případnou inicializaci globálních sdílených dat, apod.
Viz např. tento návod. Binárku ffmpeg pro Windows si můžete stáhnout např. zde. Vytvořené video někde vystavte nebo nahrajte na YouTube a pošlete mi na něj odkaz. Nezapomeňte přiložit i zdrojový soubor Animation.cs.
Odevzdat do: 3. 1. 2015
Základ: 5 až 20 bodů podle zajímavosti a obtížnosti
Bonus: za výjimečné řešení
Visual Studio 2010 projekt: 075animation
Modifikujte a odevzdejte soubor: Animation.cs
Do komentáře na první řádce napište své jméno!
Nezapomeňte poslat odkaz na výsledné video.
Hlasujte na stránce soutěže, do 18. 1. 2015.
Copyright (C) 2010-2015 J.Pelikán, last change: 2020-12-08 00:57:30 +0100 (Tue, 08 Dec 2020)