Types/Turtle/get_PatternAnimation.ps1
|
<# .SYNOPSIS Gets pattern animations .DESCRIPTION Gets one or more animations that apply to our Turtle's pattern. These animations will transform the pattern, allowing for endless variation. .EXAMPLE turtle flower PatternAnimation ([Ordered]@{ type = 'translate' values = "0 0","0 420", "0 0" repeatCount = 'indefinite' # dur = "11s" # The duration will default to the Turtle's duration additive = 'sum' }) save ./FlowerPatternAnimation.svg .EXAMPLE # We can have multiple pattern animations, and need to use `additive=sum` to ensure they do not conflict turtle SierpinskiTriangle duration '00:00:42' PatternAnimation ([Ordered]@{ type = 'rotate' values = "0","360" repeatCount = 'indefinite' additive = 'sum' }, [Ordered]@{ type = 'scale' values = "1",".25", "1" repeatCount = 'indefinite' additive = 'sum' }) save ./SierpinskiTrianglePatternAnimation.svg .EXAMPLE # Pattern Transforms set a starting state for animations turtle SierpinskiTriangle duration '00:00:42' PatternTransform @{ scale = .25 } PatternAnimation ([Ordered]@{ type = 'rotate' values = "0","360" repeatCount = 'indefinite' additive = 'sum' }, [Ordered]@{ type = 'scale' values = "1",".25", "1" repeatCount = 'indefinite' additive = 'sum' }) save ./SierpinskiTrianglePatternAnimationSmaller.svg .EXAMPLE # We can use primes as pattern transform durations to ensure animations rarely overlap # This example uses four primes under 100: # It will repeat in `23 * 41 * 61 * 83` seconds # (or just over 55 days) turtle SierpinskiTriangle duration '00:00:42' PatternTransform @{ scale = .25 } PatternAnimation ([Ordered]@{ type = 'rotate' values = "0","360" repeatCount = 'indefinite' dur = '83s' additive = 'sum' }, [Ordered]@{ type = 'scale' values = "1",".25", "1" repeatCount = 'indefinite' dur = '23s' additive = 'sum' }, [Ordered]@{ type = 'skewX' values = "0","45", "0" repeatCount = 'indefinite' additive = 'sum' dur = '41s' }, [Ordered]@{ type = 'skewX' values = "0","-45", "0" repeatCount = 'indefinite' additive = 'sum' dur = '61s' }) save ./SierpinskiTrianglePatternAnimationEndless.svg #> if ($this.'.PatternAnimation') { return $this.'.PatternAnimation' } |