Печать заполненных фигур в терминале

Печать заполненных фигур в терминале

Я хотел бы напечатать несколько фигур, заполненных текущим цветом или выбранным цветом (например, \e[31m)

Моя цель — напечатать на экране заполненный круг (букву «о»), но фон останется прежним.

наконец-то я смогу нарисовать игровое поле Луно.

решение1

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

Или программно, используя обратное видео вместо символа Unicode boxing:

$ 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, ""
   }}'

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

Возможно, вам захочется растянуть xось, поскольку конечные символы обычно выше, чем шире.

$ 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, ""
   }}'
           ██████████████████
        ████████████████████████
     █████████████████████████████
    ████████████████████████████████
  ███████████████████████████████████
 █████████████████████████████████████
███████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
███████████████████████████████████████
 █████████████████████████████████████
  ███████████████████████████████████
    ████████████████████████████████
     █████████████████████████████
        ████████████████████████
           ██████████████████

Связанный контент