-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ディスプレイのようなものです。

画面スペースに収まるように、それに応じて軸xと軸を拡大縮小する必要があります。y画面が下になっていることを忘れないでくださいy。通常の描画では上になっています。画面の位置を計算するときにシフトに加えて反転する必要があります(通常のグラフィックと同じ)。

上記のMSDN記事で利用可能なサンプルの要点:

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