0

我正在设计一个应用程序,用户将在其中输入诸如(“我喜欢被愚弄”)之类的文本。然后该文本将显示在类似电子 LED 显示板的窗口中。它显然会移动。为此我必须做

  1. 设计一个具有 16(行)* 64(列)LED 的窗口。视觉上。但如何?
  2. 我将制作一个文本文件,其中将包含以下数据(f00f-offo-ffoo-3051(假设为 I,十六进制值)、2340-foof-oooo-fofo(假设为 l)和.....)
  3. 然后我必须随着时间的推移将它们从左边移动,才能像现实世界的 LED 显示屏一样书写。但如何?

我更喜欢用winform

请您的任何想法对我来说都很棒。

谢谢,A.拉希姆

4

1 回答 1

3

解决这个问题的方法是为字母表的每个字符设置一个 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,每条线都会变得更长。

这就是应用程序的业务逻辑。

您现在要创建一个有限 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"
    }
}

那纯粹是渲染一行的示例。忽略任何错误的语法。我纯粹只是举例说明这个过程。

我希望这会有所帮助。

于 2012-03-28T20:53:18.103 回答