移动LED显示软件

时间:2012-03-28 20:08:16

标签: c# wpf visual-studio-2010 image-processing control-array

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

  1. 设计一个窗口,它将有16(行)* 64(列)LED。视觉。但是如何?
  2. 我将创建一个包含数据的文本文件(f00f-offo-ffoo-3051(假设为I,十六进制值),2340-foof-oooo-fofo(假设为l)和.....)
  3. 然后我必须将它们从左边移动到像现实世界的LED显示器一样。但是如何?
  4. 我更喜欢使用winform

    请你的任何想法对我都很好。

    谢谢, A.拉希姆

1 个答案:

答案 0 :(得分: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"
    }
}

纯粹是渲染一行的一个例子。忽略任何错误的语法。我纯粹只是举一个关于这个过程的例子。

我希望有所帮助。