首页 文章

Arduino Adafruit NeoMatrix图书馆

提问于
浏览
0

我正在测试Adafruit_NeoMatrix库,附带的示例:https://github.com/adafruit/Adafruit_NeoMatrix/blob/master/examples/tiletest/tiletest.pde,我无法弄清楚文本长度和if句子的关系:

if(--x < -36) {

更多的文字长度意味着增加数字“36”,但我没有真正看到这种关系

2 回答

  • 1

    -36 根据字体宽度,屏幕宽度和文本长度定义最大位移 . Adafruit_GFX的标准字体是每个字符6px . 您需要此光标值才能正确呈现字体字符 .

    你需要的变量......

    char exampleText[32] = "This is a test";
    int  pixelPerChar = 6;
    int  maxDisplacement;
    

    计算开始时的最大位移......

    void setup()
    {
      maxDisplacement = strlen(exampleText) * pixelPerChar + matrix.width();
      //...
    }
    

    在循环函数中......

    //...
    if (--x < -maxDisplacement)
    {
        x = matrix.width();
    }
    //...
    
  • 0

    如果以下面的等效方式编写if语句,那么查看它会更容易:

    x--;
    if(x < -36) { ... }
    

    x是光标位置,它是字符串的开头 . 在开头它等于行的长度,这意味着字符串隐藏在屏幕的右侧 . 每次迭代,光标向左移动一步,直到它到达坐标-36 . 如果字符串短于36,则它将隐藏在屏幕左侧 . 然后用不同的颜色重新整理整个程序 .

相关问题