C#:如何使用控制台绘制函数

时间:2012-11-07 16:54:20

标签: c# function plot console-application

我想使用控制台应用程序在C#中绘制任何多项式函数,而不使用任何窗口或表单,我搜索了很多,但我发现只是在窗口应用程序或涉及MATLAB,我想要的只是在控制台中。

我想让它绘制任何给定的多项式函数,例如;系数存储在一个数组中,我想绘制与之相关的函数,例如:

数组是:

double[] array = new double[4] { 2 , 0 , -4 , 3 };

然后函数是:3X ^ 3 - 4X ^ 2 + 2

它将在XY平面上绘制,如下所示:

例如:X + 1

http://i.stack.imgur.com/SD3tb.jpg

感谢任何帮助。

更新

使用您提供的方法,我尝试了以下代码:

        WriteAt("|", 40, 0);
        WriteAt("|", 40, 1);
        WriteAt("|", 40, 2);
        WriteAt("|", 40, 3);
        WriteAt("|", 40, 4);
        WriteAt("|", 40, 5);
        WriteAt("|", 40, 6);
        WriteAt("|", 40, 7);
        WriteAt("|", 40, 8);
        WriteAt("|", 40, 9);

        WriteAt("-----------------------------------------", 20, 10);

        WriteAt("|", 40, 11);
        WriteAt("|", 40, 12);
        WriteAt("|", 40, 13);
        WriteAt("|", 40, 14);
        WriteAt("|", 40, 15);
        WriteAt("|", 40, 16);
        WriteAt("|", 40, 17);
        WriteAt("|", 40, 18);
        WriteAt("|", 40, 19);
        WriteAt("|", 40, 20);

        WriteAt("*", 32, 12);
        WriteAt("*", 34, 11);
        WriteAt("*", 36, 10);
        WriteAt("*", 38, 9);
        WriteAt("*", 40, 8);
        WriteAt("*", 42, 7);
        WriteAt("*", 44, 6);
        WriteAt("*", 46, 5);
        WriteAt("*", 48, 4);

我得到了这个:

http://i.stack.imgur.com/cqLz2.jpg

所以,现在我必须给WriteAt函数提供必须绘制的点,但要记住我的绘图中的原点是(40,10)?

我从x轴减去2,因为“ - ”是“|”的一半大小所以情节会有点缩放。

1 个答案:

答案 0 :(得分:2)

您需要使用Console.SetCursorPosition并根据需要绘制“*”,就好像您有像素的80x25显示一样。

您需要相应地缩放xy轴以适应屏幕空间。不要忘记屏幕上的y已关闭,当正常图纸上显示时 - 除了计算屏幕位置时的移位(与常规图形相同)之外,还需要反转。

以上MSDN文章中提供的示例要点:

Console.SetCursorPosition(Console.CursorTop+x, Console.CursorLeft+y);
Console.Write("*");