我有一条短信:
string text = "HELLO WORLD!"
对于每个字符,如果必须放置一个“像素”来绘制文本,则返回矩阵为0/1的函数:
matrix translate(char * value,int height);
matrix translate("H",3);
必须返回具有此值的矩阵:
101
111 equal <H>
101
调用每个字符的翻译功能,我想将所有数据存储在dinamic矩阵中:
10101110...
11101100... equal <H><SPACE><E><SPACE>... etc
10101110...
存储值的最佳方法是什么?
1)我考虑过一个矩阵,但它是静态的。
2)我考虑过使用二维向量,但这个问题非常复杂。
3)当我知道最终的colums数量时,我考虑使用一个大矩阵,但它取决于字母是什么,我需要1次迭代来计算colums的数量(每个字母可能大于3)而另一个需要存储数据。答案 0 :(得分:2)
在使用点阵,喷墨和激光打印机之后,我建议你有一个固定大小的矩阵,它具有你输出的最大列数。
例如,对于每英寸600点的8.5英寸宽纸张,将有5100列。
行数取决于您需要的数量或方便数量。
此外,您可能希望使用5x7矩阵,空格== 5x7空白(零)。在字母之间留一些空白列,并将焦点放在固定间距或位图字体上。
对于每个角色,您需要一个矩阵或位图。数组对此非常有效。与字符相关联的位图(矩阵)的集合称为字体。
您可能需要编写矩阵功能,以便将字体从纵向旋转到横向,反之亦然。
编辑1:
你不能用每个句子的列来思考,但在你必须刷新(或处理)缓冲区之前,有多少句子适合你的缓冲区。句子可以非常小到非常大(看看这个答案)。由于字符矩阵在字符之间具有固定的宽度和间距,因此确定字符或许多字符是否适合仅仅是数学函数。