Examples/Stars.PSSVG.ps1

#requires -Module PSSVG

foreach ($n in 5..12) {


=<svg> -ViewBox 2,2 @(
    =<svg.Star> -PointCount $n  -Fill 'transparent' -Stroke '#4488ff' -StrokeWidth 0.01
) -OutputPath (Join-Path $PSScriptRoot .\Stars$n.svg)

}

$RotateEvery = [timespan]'00:00:02'

=<svg> -ViewBox 100, 100 @(
    =<svg.defs> @(
        =<svg.marker> @(
            =<svg.Star> -CenterX 5 -CenterY 5 -Radius 5 -PointCount 12 -fill '#4488ff' @(
                =<svg.animatetransform> -AttributeName transform -From "360 5 5"  -To "0 5 5" -dur "$($RotateEvery.TotalSeconds * 4)s" -RepeatCount indefinite -AttributeType xml -type rotate
            )
        ) -MarkerHeight 5 -MarkerWidth 5 -ViewBox 10,10 -RefX 5 -RefY 5 -Id marker1

        =<svg.marker> @(
            =<svg.Star> -CenterX 5 -CenterY 5 -Radius 5 -PointCount 10 -fill '#4488ff' @(
                =<svg.animatetransform> -AttributeName transform -From "0 5 5"  -To "360 5 5" -dur "$($RotateEvery.TotalSeconds * 4)s" -RepeatCount indefinite -AttributeType xml -type rotate
            )
        ) -MarkerHeight 2.5 -MarkerWidth 2.5 -ViewBox 10,10 -RefX 5 -RefY 5 -Id marker2
    )
    =<svg.Star> -PointCount 11 -Stroke '#4488ff' -StrokeWidth 1.1 -Content @(
        =<svg.animatetransform> -AttributeName transform -From "0 50 50"  -To "360 50 50" -dur "$($RotateEvery.TotalSeconds * 4)s" -RepeatCount indefinite -AttributeType xml -type rotate
    ) -Radius 50 -CenterX 50 -CenterY 50 -Fill transparent -MarkerStart 'url(#marker1)' -MarkerEnd 'url(#marker1)' -MarkerMid 'url(#marker1)'
    =<svg.Star> -PointCount 9 -Stroke '#4488ff' -StrokeWidth 1 -Content @(
        =<svg.animatetransform> -AttributeName transform -From "360 50 50"  -To "0 50 50" -dur "$($RotateEvery.TotalSeconds * 2)s" -RepeatCount indefinite -AttributeType xml -type rotate
    ) -Radius 30 -CenterX 50 -CenterY 50 -Fill transparent -MarkerStart 'url(#marker2)' -MarkerEnd 'url(#marker2)' -MarkerMid 'url(#marker2)'

    =<svg.Star> -PointCount 7 -Stroke '#4488ff' -StrokeWidth .5 -Content @(
        =<svg.animatetransform> -AttributeName transform -From "0 50 50"  -To "360 50 50" -dur "$($RotateEvery.TotalSeconds)s" -RepeatCount indefinite -AttributeType xml -type rotate
    ) -Radius 10 -CenterX 50 -CenterY 50 -Fill transparent

    =<svg.Star> -PointCount 5 -Stroke '#4488ff' -StrokeWidth .25 -Content @(
        =<svg.animatetransform> -AttributeName transform -From "360 50 50"  -To "0 50 50" -dur "$($RotateEvery.TotalSeconds / 2)s" -RepeatCount indefinite -AttributeType xml -type rotate
    ) -Radius 5 -CenterX 50 -CenterY 50 -Fill transparent

) -OutputPath (Join-Path $PSScriptRoot .\Stars.svg)