3

I'd like to print some shapes filled with the current color or a selected one (e.g. \e[31m)

My aim is to print a filled circle (letter o) on the screen but the background will stay as it is.

finally I ll be able to draw the board of game Luno.

2

1 Answer 1

5
echo '
     ████████
  ██████████████
 ████████████████
██████████████████
██████████████████
 ████████████████
  ██████████████
     ████████'

Or programmatically and using reverse video instead of Unicode boxing character:

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

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

You may want to stretch the x axis as terminal characters are usually higher than they are wide.

$ 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, ""
   }}'
           ██████████████████
        ████████████████████████
     █████████████████████████████
    ████████████████████████████████
  ███████████████████████████████████
 █████████████████████████████████████
███████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
████████████████████████████████████████
███████████████████████████████████████
 █████████████████████████████████████
  ███████████████████████████████████
    ████████████████████████████████
     █████████████████████████████
        ████████████████████████
           ██████████████████
3
  • +1 I get a slightly different behavior with awk on my setup for some reason...
    – user44370
    Nov 15, 2014 at 4:03
  • well thanks for the reply but my aim is to make it (if possible) on one char area. I mean on prompt, I d like to print a filled circle.
    – Olgun Kaya
    Nov 18, 2014 at 20:43
  • 1
    @OlgunKaya You mean like ? Then echo ● Nov 18, 2014 at 20:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .