Seoul 1988 Olympic logo

Fork

Code

svg {
  viewBox: -107 -56 180 146 p 10;  
  
  --w: 20;
  --g: 3;
  --a: 9;
  --s: $((w+g)/4);
  --R: $(s/2/sin(π/12));
  --vx(k): -R*sin(k*π/6);
  --vy(k): -R*cos(k*π/6);
  --ro(k): a + s*(t - k);
  --arc(k, from=-15, to=15, inset=0): @arc(
    r: $(ro(k) - inset); 
    from: $(180 - 30k + from);
    to: $(180 - 30k + to); 
    move: $(vx(k)) $(vy(k));
  );

  g|subtract*3 {
    --t: @n(*4, 21-);
    --top: @n(-1, *7.2, -55);
    fill: @pn(#005b9a, #ee334e, #fcb12f);
    path {
      d: $arc(t, -120) @M($(t-1), $arc(t-@n)) $arc(0, -15, 0) V $top h $w V $(-R) 
         $arc(0, 0, -15, w) @M($(t-5), $arc(@n, 15, -15, w)) Z;
    }
    circle {
      cx, cy, r: $(vx(t-4)), $(vy(t-4)), $(a+g);
    }
    rect*10 {
      --h: @n(/2, 6-);
      x, y: $(-ro(0)), $(top + @n(*6) - h);
      width, height: $(2w) $h;
    }
  }
}