-1

我想使用控制台应用程序在 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,因为“-”是“|”大小的一半 所以情节会有点缩放。

4

1 回答 1

2

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

您需要相应地缩放xy轴以适应屏幕空间。不要忘记,y在屏幕上是向下的,而在普通图形上它是向上的 - 在计算屏幕位置时除了移位之外还需要反转(与常规图形相同)。

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

Console.SetCursorPosition(Console.CursorTop+x, Console.CursorLeft+y);
Console.Write("*");
于 2012-11-07T17:01:41.793 回答