
Я хотел бы напечатать несколько фигур, заполненных текущим цветом или выбранным цветом (например, \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, ""
}}'
██████████████████
████████████████████████
█████████████████████████████
████████████████████████████████
███████████████████████████████████
█████████████████████████████████████
███████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
███████████████████████████████████████
█████████████████████████████████████
███████████████████████████████████
████████████████████████████████
█████████████████████████████
████████████████████████
██████████████████