Processing 'It looks like you're mixing "active" and "static" modes.'

Nate711 picture Nate711 · Jul 12, 2011 · Viewed 45k times · Source

Processing keeps giving me this error when I run it even though it is just a print command. When I delete the comment block it works fine. Here's the code:

/*
    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); 

Why doesn't it like my comment?

Answer

George Profenza picture George Profenza · Jul 12, 2011

Processing runs in two separate modes: static or active

Static mode simply means it's a list of instructions/calls to existing functions (e.g. draw a bunch of lines then exit)

Active mode uses the setup() and draw() calls and runs continuously (gets updated every 'frame').

Even you though you are using comments, you are defining methods(cortToPolar,lawCos) inside those comments and Processing encounters those which is why you're getting the error.

Use the setup() call to do your print:

/*
    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);
}

In active mode you can control frame updating using noLoop() and loop() in conjunction with draw()