【问题标题】:Coordinate Points from the Console - Visual C++ 2010 Express Edition来自控制台的坐标点 - Visual C++ 2010 Express Edition
【发布时间】:2012-08-01 13:19:03
【问题描述】:

我正在尝试编写一个在控制台屏幕上绘制特定形状的程序。我想尝试使用控制台屏幕外的坐标点来指定形状的点,将其存储在数组中,并在控制台屏幕上清楚地显示为白色(或任何颜色)闭合图形。我基本上想知道是否可以在控制台屏幕上设置笛卡尔平面,以便我可以根据我提供的程序的 (x,y) 坐标创建形状和图形。

我并不完全了解 Windows GDI 的工作原理,我听说的唯一可以做到这一点的库是 'curse.h' 或 'ncurse.h' 库。此外,我在 Internet 上没有找到关于如何在我的 Visual C++ 2010 Express Edition 编译器中安装这些不同库的单一参考资料。感谢@john,我能够查找 Windows 应用程序的控制台功能。我是编码的初学者,所以请耐心等待,这是我根据充满错误的程序编写的程序(至少这是构建者所说的):

#include <WinCon.h>
using namespace std;

int main()
{
   char string[] = "#";
   char recString[5] = {'\0'};
   COORD coordinates;
   coordinates.X = 15;
   coordinates.Y = 10;
   SetConsoleCursorPosition(GENERIC_READ, coordinates);
   WriteConsole(GENERIC_WRITE, string, 1, recString, NULL);
   char response;
   cin >> response;
   return 0;
}

【问题讨论】:

  • 您想在控制台上使用块字符(█)还是使用实际的屏幕像素进行绘制?
  • 另外,在实际屏幕像素的情况下,您是否想要一个可以绘制线、弧、多边形、椭圆等基元的 API,还是只需要一种设置单个像素的方法?
  • @Emile Cormier。我想使用实际的屏幕像素在控制台上绘图。是的,我想要一个可以绘制图元等的 API。
  • @Ram:既然你提到了诅咒,我以为你的意思是块字符。那时我的回答可能不相关。
  • @EmileCormier。没关系。我会尝试使用块字符。我很想知道你的答案。

标签: c++ visual-c++ coordinates coordinate-systems


【解决方案1】:

Windows 控制台 API 应该为您提供所需的一切 http://msdn.microsoft.com/en-us/library/windows/desktop/ms682073%28v=vs.85%29.aspx

编辑: 我对这个库没有太多经验,但我可以看到上面的代码存在一些问题。这样的事情更像是你应该做的事情

HANDLE console_out = GetStdHandle(STD_OUTPUT_HANDLE); 
...
SetConsoleCursorPosition(console_out, coordinates); 
...
WriteConsole(console_out, string, 5, recString, NULL);

这个页面有一些例子http://msdn.microsoft.com/en-us/library/windows/desktop/ms686971%28v=vs.85%29.aspx

【讨论】:

    【解决方案2】:

    请参阅此tutorial,了解如何使用Simple DirectMedia Layer (SDL) 库和SDL_gfx 附加库来绘制原始形状。这将在控制台窗口之外的窗口上绘制(AFAIK,无法直接在 Windows 控制台内逐像素绘制图形)。

    如果您只是在寻找一种生成带有几何形状的绘图的方法,并且您已经熟悉 Matlab(或其免费克隆 Octave),那么您应该考虑使用出色的 geom2d Matlab图书馆。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-07
      相关资源
      最近更新 更多