我如何在ncurses中设计无方形符号?

时间:2014-02-10 14:09:45

标签: python ncurses

我今天学会了如何使用for循环制作方形符号,如下所示:

import curses

stdscr = curses.initscr()
for y in range(1,10):
    for x in range(1,10):
        stdscr.addch(y,x,'#')
stdscr.getch()

但我还没弄明白如何以智能的方式添加其他图形,如三角形圆形。 你有什么想法?

1 个答案:

答案 0 :(得分:3)

您可以找到名称为“ASCII art”的更多资源。对于三角形,我会使用斜杠/\并为基础加下划线_。只需确保每个斜杠都与前一个'字符列相差一个字符。像这样:

import curses
stdscr = curses.initscr()

for i in range(10):
    stdscr.addch(i, 10-i, '/')
    stdscr.addch(i, 11 + i, '\\')

for i in range(2, 20):
    stdscr.addch(9, i, '_')

stdscr.getch()

结果:

          /\
         /  \
        /    \
       /      \
      /        \
     /          \
    /            \
   /              \
  /                \
 /__________________\

对于一个圆圈,你需要罪和cos,就像这样:

import math
import curses
stdscr = curses.initscr()

radius = 10
for part in range(0, 100):
    angle = (part / 100) * math.pi * 2
    x = math.cos(angle) * radius + radius
    y = math.sin(angle) * radius + radius
    stdscr.addch(int(y * .7), int(x), 'o')

stdscr.getch()

看起来不太好,但这是一个开始:

     oooooooooo
   oo          oo
 oo              oo
 o                o
o                  o
o                  o
o                  o
o                  oo
o                  o
o                  o
 o                o
 oo              oo
   oo          oo
     oooooooooo
          o