【问题标题】:Processing 'It looks like you're mixing "active" and "static" modes.'处理“看起来你正在混合“活动”和“静态”模式。
【发布时间】:2011-10-03 06:47:06
【问题描述】:

当我运行它时,即使它只是一个打印命令,处理过程也会不断给我这个错误。当我删除评论块时,它工作正常。代码如下:

/*
    float[] cortToPolar(int xcorr, int ycorr) {
    float returns[] = new float[2];
    returns[0]= degrees(tan(ycorr/xcorr));
    returns[1]= sqrt(pow(xcorr,2)+pow(ycorr,2));
    return returns;
}

float lawCos(int a, int b, int c) {
  return degrees(
     acos(
     (pow(a,2)+pow(b,2)-pow(c,2))/
       (2*a*b)
     )
  );
}
*/
print(0); 

为什么不喜欢我的评论?

【问题讨论】:

    标签: comments processing


    【解决方案1】:

    处理以两种不同的模式运行:staticactive

    静态模式仅仅意味着它是对现有函数的指令/调用列表(例如,画一堆线然后退出)

    Active 模式使用 setup()draw() 调用并连续运行(每“帧”更新一次)。

    只有在活动模式下,您才可以定义自己的函数,例如 cortToPolarlawCos(不管它们是否被注释 - 这可能是处理编辑器错误)。

    使用setup() 调用打印,因为使用设置将使处理进入活动模式。

    /*
    float[] cortToPolar(int xcorr, int ycorr) {
        float returns[] = new float[2];
        returns[0]= degrees(tan(ycorr/xcorr));
        returns[1]= sqrt(pow(xcorr,2)+pow(ycorr,2));
        return returns;
    }
    
    float lawCos(int a, int b, int c) {
      return degrees(
         acos(
         (pow(a,2)+pow(b,2)-pow(c,2))/
           (2*a*b)
         )
      );
    }
    */
    void setup(){
      print(0);
    }
    

    (如果您需要使用active模式并控制draw()的调用方式,您可以使用noLoop()loop()。)

    【讨论】:

      【解决方案2】:

      当实际问题是语法错误时,可能会显示该消息。我用以下(愚蠢的)代码遇到了这个错误:

      boolean state = false;
      
      setup() {
        size(200, 800);
      }
      
      void draw() {
      }
      

      设置功能缺少“void”修饰符。这是一个语法错误(至少应该是这样)。但是,处理 IDE 会为您提供这种“主动与静态”的消息。

      所以在这种情况下,应该是void setup() { } 而不仅仅是setup() { }

      【讨论】:

        猜你喜欢
        • 2020-05-21
        • 2014-03-03
        • 2013-10-06
        • 2011-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-23
        • 2019-05-26
        相关资源
        最近更新 更多