端末に塗りつぶされた形状の印刷

端末に塗りつぶされた形状の印刷

現在の色や選択した色で塗りつぶされたいくつかの図形を印刷したいです(例:\ e [31 m)

私の目標は、画面に単色の円(文字o)を印刷することですが、背景はそのまま残ります。

ついにLunoゲーム用ボードを描くことができました。

ベストアンサー1

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

あるいは、プログラムで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, ""
   }}'

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

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

おすすめ記事