C++调整行高
Adjusting line height in C++
我正在尝试对我一直在编写的迷宫程序进行最后的润色。我已经使用 Unicode 来分隔墙壁和路径,但是由于(水平)行距,我不能让它看起来足够紧凑。我附上了两个截图。我只是转义换行符“\n”以便打印每一行。线之间的距离可以调整吗?还是我坚持使用这种 "gappy" 表示法?
我的输出:
我想表达的意思是:
TBH,如果您想要像素精确的渲染,请使用适当的渲染 API,例如 OpenGL。
从文本渲染的角度来看,您没有说明要渲染什么。假设像终端控制台或 shell window 这样的东西,那么字符和换行符之外的布局与您的程序无关;视觉表现完全取决于您要渲染的shell。
首先,检查您是否真的在每条迷宫扫描线打印一行,并且没有与虚假的换行符交错。假设排除了,问题是 unicode 字形不是一个完整的块。所以你必须以某种方式设置字体或选择另一个完整块的字形。
通常控制台 windows 为 80 个字符宽 x 22 或 24 个字符高,字符为 8 像素宽 x 19 像素高。所以它离正方形网格很远,你可能想使迷宫有偏差以反映这一点并提供更好的视觉外观(例如,使 2 个像素宽的垂直走廊比 2 个像素宽的水平走廊更常见)。
检查二进制图像库字体,您可能会发现它们很有用。
假设您不打印双换行符,这超出了标准 C++ 的范围,它不提供以标准方式控制终端的工具。
解决方案:
- 您可以提供一个启动器脚本,它会打开一个新终端 window 并使用特定字体并在其中运行您的应用程序。
- 您可以使用一些特定于平台的方法来更改背景颜色(ANSI 代码在 unixy 终端中工作,或者对 Windows 终端使用 Win32 API,在类 Unix 环境中使用 ncurses 库)并打印只是不同颜色的空格。
- 使用 GUI library/framework 来完全控制所绘制的内容(我会使用 Qt 作为 C++ GUI 应用程序)。
我正在尝试对我一直在编写的迷宫程序进行最后的润色。我已经使用 Unicode 来分隔墙壁和路径,但是由于(水平)行距,我不能让它看起来足够紧凑。我附上了两个截图。我只是转义换行符“\n”以便打印每一行。线之间的距离可以调整吗?还是我坚持使用这种 "gappy" 表示法?
我的输出:
我想表达的意思是:
TBH,如果您想要像素精确的渲染,请使用适当的渲染 API,例如 OpenGL。
从文本渲染的角度来看,您没有说明要渲染什么。假设像终端控制台或 shell window 这样的东西,那么字符和换行符之外的布局与您的程序无关;视觉表现完全取决于您要渲染的shell。
首先,检查您是否真的在每条迷宫扫描线打印一行,并且没有与虚假的换行符交错。假设排除了,问题是 unicode 字形不是一个完整的块。所以你必须以某种方式设置字体或选择另一个完整块的字形。
通常控制台 windows 为 80 个字符宽 x 22 或 24 个字符高,字符为 8 像素宽 x 19 像素高。所以它离正方形网格很远,你可能想使迷宫有偏差以反映这一点并提供更好的视觉外观(例如,使 2 个像素宽的垂直走廊比 2 个像素宽的水平走廊更常见)。
检查二进制图像库字体,您可能会发现它们很有用。
假设您不打印双换行符,这超出了标准 C++ 的范围,它不提供以标准方式控制终端的工具。
解决方案:
- 您可以提供一个启动器脚本,它会打开一个新终端 window 并使用特定字体并在其中运行您的应用程序。
- 您可以使用一些特定于平台的方法来更改背景颜色(ANSI 代码在 unixy 终端中工作,或者对 Windows 终端使用 Win32 API,在类 Unix 环境中使用 ncurses 库)并打印只是不同颜色的空格。
- 使用 GUI library/framework 来完全控制所绘制的内容(我会使用 Qt 作为 C++ GUI 应用程序)。