我正在设计一个应用程序,用户可以在其中输入类似("我喜欢被愚弄")的文本。然后,该文本将显示在类似窗口的电子LED显示屏上。它显然会移动。为此,我必须进行
- 设计一个具有16(行)*64(列)LED的窗口。视觉上。但是怎么做呢
- 我将制作一个文本文件,其中将包含数据,如(f00f-ofo-foo-3051(假设为i,十六进制值)、2340foof-ooo-fofo(假设为l)和…..)
- 然后我必须随着时间的推移把它们从左边移到像现实世界中的LED显示器一样写。但是怎么做呢
我更喜欢使用winform
请注意,你的任何想法对我来说都很好。
谢谢,A.Rahim
实现这一点的方法是为字母表中的每个字符创建一个6 x 5的数组,如:
int[][] letterA = { { 0, 0, 1, 1, 0, 0 },
{ 0, 1, 0, 0, 1, 0 },
{ 1, 1, 0, 0, 1, 1 },
{ 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1 },
{ 1, 1, 0, 0, 1, 1 },
{ 1, 1, 0, 0, 1, 1 }};
然后,您可以合并所需的字母,以构建键入的单词。
因此,每一行都会随着需要打开的LED而变长。
这就是应用程序的商业逻辑。
您现在想要创建一个finitie LED灯集,比如说60 x 10,并从最右边开始,如果当前阵列值为1,则显示圆圈黄色或黑色。
希望能有所帮助。
编辑:在表格上用程序渲染圆圈。
你可以创建一个定时器,然后删除面板中的所有控件,然后你可以做:
//word is the merged array of letters like the one above
foreach(int[] line in word)
{
//currentShiftIndex is the shift amount to render control from left to right
int currentShiftIndex = 1;
foreach(int i in line)
{
//set up a control called 'light' for example [im not including that]
light.Left = currentShiftIndex * 10;
light.Background = i == 1 ? "Yellow" : "Black"
}
}
这纯粹是一个渲染一行的例子。忽略任何错误的语法。我只是举一个例子说明这个过程。
我希望这能有所帮助。