如何在控制台绘图?

时间:2013-12-22 17:18:05

标签: c# vb.net graphics console

假设我有一个VB.net或C#控制台程序将其数据输出到控制台。有没有办法改变像素的颜色?例如,我的分辨率是1600x900。我可以画像素(800,600)红色吗?我是否可以对活动窗口执行相同操作(如果控制台为400x400,则使用相对于控制台的坐标绘制像素(300,300))?我想做的是制作一些表达的情节。我有多个点和他们的坐标,我想通过绘制像素在控制台中绘制它们。我真的很困惑如何做到这一点。任何建议和帮助都非常感谢。

3 个答案:

答案 0 :(得分:0)

您可以在写入控制台时更改前景色和背景色,但就是这样。您需要使用Winforms来完成您想要的任务。

答案 1 :(得分:0)

您无法绘制像素,但可以使用彩色伪图。您可以通过p /调用它们来使用WriteConsoleOutput之类的Win32函数。例如,请参阅Advanced Console IO in .NET

答案 2 :(得分:0)

我知道这个答案有点晚了,但如果你仍然想要它,需要它,或者如果其他人想要它,我在堆栈溢出中找到了一些教程和其他东西,这让我找到了答案。这是:

 [DllImport("kernel32.dll", EntryPoint = "GetConsoleWindow", SetLastError = true)]
    private static extern IntPtr GetConsoleHandle();

    IntPtr handler;
    Bitmap mainMap;

    void FinalDraw()
    {
        using (var graphics = Graphics.FromHwnd(handler))
            graphics.DrawImage(mainMap, new PointF(0, 0));
    }

现在只需使用 mainMap.SetPixel(Color) 更改 Bitmap mainMap 内的像素,然后设置所有设置,只需调用 FinalDraw,就可以了。您需要将 mainMap 设置为新的 Bitmap 并设置分辨率。最后确保从 Visual Studios 的 Manage NuGet 窗口安装 System.Drawing.Common。以及使用 System.Drawing 添加;您可能还需要添加项目引用。祝你好运,玩得开心!