【问题标题】:How can I draw line diagrams on a tty?如何在 tty 上绘制折线图?
【发布时间】:2012-11-22 13:37:31
【问题描述】:

我正在用 C++ 编写一个命令行(非图形)Linux 程序,在某些地方我需要它在终端中绘制图表或绘制函数。

查看一些程序,如 ntsysv、mc、alsa 等,我相信这是可能的,但我想知道如何。

【问题讨论】:

    标签: c++ linux graphics terminal 2d


    【解决方案1】:

    您可能想使用ncurses 并做一些ASCII art

    【讨论】:

      【解决方案2】:

      像 alsamixer 这样的东西使用 ncurses。 http://www.gnu.org/software/ncurses/

      这将使您可以直接在终端中制作图表等。

      【讨论】:

      • 也谢谢你...我是这里的初学者,还不能投票:(
      【解决方案3】:

      根据 ncurses 的建议,还有一个名为 libcaca 的库,这是一个输出 ASCII 文本而不是像素的图形库。如果您想使用其他软件创建此图,然后将其输出推送到终端,您可以考虑使用 libcaca 和 ncurses。

      【讨论】:

        【解决方案4】:

        尝试使用用于 turbo c conio.h 的旧 borland 库

        【讨论】:

        • 哪个 Linux 包含它?我从未在 Debian 或 Red Hat 上看到过它。
        【解决方案5】:

        可能不再需要,但也许这对某人有所帮助

        void drawfunc(int ymin, int ymax, int xmin, int xmax, float h){
        int y = 0;
        int x = 0;
        double func;
        
        for(y = ymax; y >= ymin; y--)
        {
            printf("\n");
            for(x = xmin; x <= xmax; x++)
            {
                func = cos(x);
                
                if(x == 0)
                {
                    printf("|");
                }
                
                if(func > (y - 1) * h && func < y * h)
                {
                    printf("*");
                }
        
                else if(y == 0)
                {
                    if(x >= xmin || x <= xmax)
                    {
                        printf("-");
                    }
                }
                else
                {
                    printf(" ");
                }
            }
        }
        printf("\n\n");}
        

        【讨论】:

        • edit你的答案解释它是如何回答这个问题的。
        猜你喜欢
        • 2021-03-10
        • 1970-01-01
        • 1970-01-01
        • 2013-05-23
        • 2020-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多