+semc => [
+ map {
+ my ($r, $pr, $pl) = split //, $_;
+ !$_ ? '-' : sprintf(
+ join('',
+ '<svg width="20" height="20" viewBox="0 0 10 15">',
+ '<path stroke="black" d="M5,6 v7"/>',
+ '<path stroke="black" fill="none" d="M0,%s h10 %s" transform="rotate(%d 5 6)"/>',
+ '</svg>',
+ ),
+ ['6', '3v3', '9v-3']->[$pl],
+ [ '', 'v3', 'v-3']->[$pr],
+ $r * 45,
+ );
+ }
+ # 360° rotation (0-7) and position state (0-2) of left and right bars
+ qw(
+ 021 121 221 321 421 521 621 721
+ 022 022 122 222 322 011 111 211 311
+ 001 101 201 301 401 501 601 701 020
+ )
+],