aboutsummaryrefslogtreecommitdiff
path: root/make_petals.sh
blob: 14645b20dba12a6083b665ef44653756a1fd5eba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/bin/sh

IN_ROW=15

DELAY_BETWEEN=0.3
DEG_BETWEEN=24

SUBUNITS="5.3 3.2 1.5 1"
SUBUNITS_N=$(wc -w <<EOF
$SUBUNITS
EOF
	     )
END_DEG=360
ANIMATION_DURATION=8 # must match that in kwiatuszek.html.template
ANIMATION_DELAY=$(bc <<EOF
2 + $SUBUNITS_N * $IN_ROW * $DELAY_BETWEEN
EOF
		  )

print_petal() {
    cat <<EOF
      <div class="petal">
	<div style="--subunit: $SUBUNIT; --end-deg: -${END_DEG}deg; animation-delay: ${ANIMATION_DELAY}s;">
	  <img src="./petal.svg" alt="flower petal" draggable="false">
	</div>
      </div>
EOF
}

I=0
for SUBUNIT in $SUBUNITS; do
    I=$((I +  1))

    if [ $I -eq $((SUBUNITS_N - 1)) ]; then
	bc >_inner_row_delay <<EOF
$ANIMATION_DELAY + $ANIMATION_DURATION
EOF
    fi

    if [ $I -eq 1 ]; then
	bc >_flower_delay <<EOF
$ANIMATION_DELAY + $ANIMATION_DURATION - $DELAY_BETWEEN
EOF
    fi

    for _ in $(seq $IN_ROW); do
	print_petal
	END_DEG=$((END_DEG + DEG_BETWEEN))
	ANIMATION_DELAY=$(bc <<EOF
$ANIMATION_DELAY - $DELAY_BETWEEN
EOF
		   )
    done

    END_DEG=$((END_DEG + DEG_BETWEEN / 2))
done