Processing 'It looks like you're mixing “a

2019-02-12 10:42发布

问题:

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?

回答1:

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()



回答2:

The message could be shown when the actual problem is a syntax error. I encountered this error with the following (silly) code:

boolean state = false;

setup() {
  size(200, 800);
}

void draw() {
}

It is missing the 'void' modifier for the setup function. This is a syntax error (at least, it should be). But the Processing IDE gives you this "active vs. static" message instead.

So in this case, it should be void setup() { } rather than just setup() { }.