【问题标题】:Displaying a bool array as a black and white screen in C++在 C++ 中将布尔数组显示为黑白屏幕
【发布时间】:2014-09-02 18:11:00
【问题描述】:

我真的不知道怎么问这个问题,因为我不太了解图形,所以可能有一些我没有使用的术语。

我目前在 C++ 中使用 2D 布尔数组来存储像素的开/关状态以进行简单显示,其中数组中的位置对应于屏幕上的位置,值 (true/false) 表示是否像素打开(白色)或关闭(黑色)。我想知道将其显示到屏幕上的最佳方式。我不知道任何 C++ 图形库,虽然我会很好地学习其中的一部分,但如果我不必做那么多阅读就好了。这个项目并不意味着对图形很重。如果它可以像这样简单,那就太好了:

for (int i = 0; i < cols; i++)
    for (int j = 0; j < rows; j++)
         window[windowTopX + i][windowTopY + j] = display[i][j];

非常感谢!

编辑: 哦,我完全忘了说这个项目是在 Linux 上的。

【问题讨论】:

  • 你可以使用 SDL、SFML、HGE、OPENGL、DIRECTX
  • 屏幕的分辨率是多少?如果是小型显示器,比如 120x80,您可以使用 ASCII 进行绘制,使用特殊字符来清除屏幕,以便您在原地重绘。
  • 我尝试使用 ASCII 但看起来不太好。

标签: c++ arrays graphics boolean pixels


【解决方案1】:

由于您正在处理非常简单的 2D 图形,请尝试提供 Allegro 一枪。与 SDL 或 DirectX 相比,它学习起来非常简单,并且有几个功能可以让您的生活更轻松。 (它也是跨平台的!) Allegro wiki 也有一些资源可以帮助您。 The wiki page. 希望这会有所帮助!

【讨论】:

  • 我看了看,但后来我意识到我之前已经检查过的 GL CImg 可以工作。所以我用了那个。无论如何,谢谢!
【解决方案2】:

尝试使用 SetPixel 和 Windows GDI。

有一个示例here 可以帮助您启动并运行。您可以将该代码中的 SetPixel 替换为您正在尝试执行的操作。

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多