Wibbles to goo example.

Former-commit-id: 664df27299dfc113b40a0ba0063d60c33d163757
This commit is contained in:
David Himmelstrup 2019-09-01 11:48:11 +08:00
commit 5a0741e89e

View file

@ -15,7 +15,7 @@ import Reanimate.Combinators
main :: IO () main :: IO ()
main = reanimate $ autoReverse $ mkAnimation 5 $ do main = reanimate $ autoReverse $ mkAnimation 5 $ do
s <- getSignal $ signalFromTo 0 2 signalLinear s <- getSignal $ signalFromTo 0 1.5 $ signalCurve 2
emit $ mkBackground "black" emit $ mkBackground "black"
emit $ FilterTree $ mkFilter "blur" emit $ FilterTree $ mkFilter "blur"
[FEGaussianBlur $ defaultSvg [FEGaussianBlur $ defaultSvg
@ -51,18 +51,16 @@ main = reanimate $ autoReverse $ mkAnimation 5 $ do
emit $ withFillColor "red" $ mkGroup emit $ withFillColor "red" $ mkGroup
[ translate (s*(-radius)) 0 circ [ translate (s*(-radius)) 0 circ
, translate (s*radius) 0 circ , translate (s*radius) 0 circ
] ] & filterRef .~ pure (Ref "blur")
& filterRef .~ pure (Ref "goo") emit $ translate 0 (radius*2) $ withFillColor "red" $ mkGroup
emit $ translate 0 (radius*2) $ withFillColor "red" $ set filterRef (pure $ Ref "blur") [ translate (s*(-radius)) 0 circ
$ mkGroup [ translate (s*(-radius)) 0 circ , translate (s*radius) 0 circ
, translate (s*radius) 0 circ ] ] & filterRef .~ pure (Ref "goo")
where where
sharpness = 60 sharpness = 10
dev = 10 dev = 10
radius = 30 radius = 25
circ = CircleTree $ defaultSvg circ = mkCircle (Num 0, Num 0) (Num radius)
& circleCenter .~ (Num 0, Num 0)
& circleRadius .~ Num radius
mkFilter :: String -> [FilterElement] -> Filter mkFilter :: String -> [FilterElement] -> Filter
mkFilter ident fe = defaultSvg & filterChildren .~ fe & attrId .~ Just ident mkFilter ident fe = defaultSvg & filterChildren .~ fe & attrId .~ Just ident