Imprimindo formas preenchidas no terminal

Imprimindo formas preenchidas no terminal

Gostaria de imprimir algumas formas preenchidas com a cor atual ou selecionada (por exemplo, \e[31m)

Meu objetivo é imprimir um círculo preenchido (letra o) na tela, mas o fundo permanecerá como está.

finalmente poderei desenhar o tabuleiro do jogo Luno.

Responder1

echo '
     ████████
  ██████████████
 ████████████████
██████████████████
██████████████████
 ████████████████
  ██████████████
     ████████'

Ou programaticamente e usando vídeo reverso em vez do caractere boxing Unicode:

$ awk -v radius=20 'BEGIN{
   for (y = -radius; y <= radius; y++) {
     x = sqrt(radius * radius - y * y)
     printf "%*s\033[7m%*s\033[27m\n", radius - x, "", 2 * x, ""
   }}'

             █████████████
           ██████████████████
         ██████████████████████
        ████████████████████████
      ███████████████████████████
     █████████████████████████████
    ███████████████████████████████
    ████████████████████████████████
   ██████████████████████████████████
  ███████████████████████████████████
  ████████████████████████████████████
 █████████████████████████████████████
 ██████████████████████████████████████
███████████████████████████████████████
███████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
███████████████████████████████████████
███████████████████████████████████████
 ██████████████████████████████████████
 █████████████████████████████████████
  ████████████████████████████████████
  ███████████████████████████████████
   ██████████████████████████████████
    ████████████████████████████████
    ███████████████████████████████
     █████████████████████████████
      ███████████████████████████
        ████████████████████████
         ██████████████████████
           ██████████████████
             █████████████

Você pode querer esticar o xeixo, pois os caracteres terminais geralmente são mais altos do que largos.

$ awk -v radius=10 'BEGIN{
   for (y = -radius; y <= radius; y++) {
     x = sqrt(radius * radius - y * y)
     printf "%*s\033[7m%*s\033[27m\n", 2*(radius - x), "", 4 * x, ""
   }}'
           ██████████████████
        ████████████████████████
     █████████████████████████████
    ████████████████████████████████
  ███████████████████████████████████
 █████████████████████████████████████
███████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
███████████████████████████████████████
 █████████████████████████████████████
  ███████████████████████████████████
    ████████████████████████████████
     █████████████████████████████
        ████████████████████████
           ██████████████████

informação relacionada