i am going to be crazy!!!where this error coming from????

The method sq(float) in type PApplet is not applicable for the arguments(float[]))

int leth=1,sze_X=900,sze_Y=600;
float center_X=sze_X/3,center_Y=sze_Y/3,ellipse_center_X=center_X+50,ellipse_center_Y=center_Y,equation_c;
float x[]=new float[leth],y[]=new float[leth],size_1[]=new float[leth],step[]=new float[leth],angle[]=new float[leth],equation_A[]=new float[leth],equation_B[]=new float[leth],equation_C;
float equation_a[]=new float[leth],equation_b[]=new float[leth],ellipse_a[]=new float[leth],ellipse_b[]=new float[leth];
boolean negation_X[]=new boolean[leth],negation_Y[]=new boolean[leth];
void setup(){
  size(sze_X,sze_Y,OPENGL);
  background(0);
  smooth(8);
  noStroke();
  rdm();
  equation_c=dist(center_X,center_Y,center_X+2*(ellipse_center_X-center_X),ellipse_center_Y);
  eqt();
  step[0]=20;                         
}

void eqt(){
  for(int i=0;i<leth;i++){
    equation_A[i]=sq(equation_c)*sq(x[i]); 
    equation_B[i]=sq(x[i])+sq(y[i])+sq(equation_c);
    equation_C=1;
    if((equation_B-sqrt(sq(equation_B)-4*eqation_A*equation_C))>=0){equation_a[i]=1/((equation_B-sqrt(sq(equation_B)-4*eqation_A*equation_C))/2*equation_A);}
    else if((equation_B-sqrt(sq(equation_B)-4*eqation_A*equation_C))<0){equation_a[i]=1/((equation_B+sqrt(sq(equation_B)-4*eqation_A*equation_C))/2*equation_A);}
    else{println("@@@@@@@@@@@@@@@@@@");}
    equation_b[i]=sq(equation_c)-equation_a[i];
    ellipse_a[i]=sqrt(equation_a[i]);
    ellipse_b[i]=sqrt(equation_b[i]);
  }
}

void rdm(){
  int half_size=45;
  for(int i=0;i<leth;i++){
    x[i]=random(-sze_X,sze_X);
    y[i]=random(-sze_Y,sze_Y);
    if(center_X-half_size-13<=x[i]&&x[i]<=center_X+half_size+13){
      if(center_Y-half_size-13<=y[i]&&y[i]<=center_Y+half_size+13){
        while(center_Y-half_size-13<=y[i]&&y[i]<=center_Y+half_size+13){y[i]=random(0,sze_Y);}
      }
    }
    size_1[i]=random(5,13);
  }
  x[0]=100;
  y[0]=100;
  size_1[0]=30;
}

void draw(){
  color blk=color(0,0,0);
  color blu=color(100,255,252);
  int size=100;
  float number=0.01;
  color change=lerpColor(blk,blu,0);
  clear();
  for(int i=0;i<100;i++){
    if(number<=1){
      change=lerpColor(blk,blu,number);
      number=number+0.01;
      fill(change);
     }
  else{
    fill(blu);
  }
  if(size>0){
  ellipse(center_X,center_Y,size,size);
  }
  size=size-1;
  }
  star();
  rotte();
}

void star(){
  color blc=color(0,0,0);
  color org=color(255,252,45);
  float size_2=5.0;
  float number;
  color change;
  for(int i=0;i<leth;i++){
    size_2=size_1[i];
    number=0;
    for(int j=0;j<size_1[i];j++){
      if(number<=1){
        change=lerpColor(blc,org,number);
        number=number+1/size_1[i];
        fill(change);
      }
      else{
        fill(org);
      }
      if(size_2>0){
        if(negation_X[i]==true){
          if(negation_Y[i]==true){ellipse(-x[i],-y[i],size_2,size_2);}
          else{ellipse(-x[i],y[i],size_2,size_2);}
        }
        else{
          if(negation_Y[i]==true){ellipse(x[i],-y[i],size_2,size_2);} 
          else{ellipse(x[i],y[i],size_2,size_2);}
        }
        ellipse(x[i],y[i],size_2,size_2);
        negation_X[i]=false;negation_Y[i]=false;
      }
     size_2=size_2-1;
    }
  }
}

void rotte(){
  int i;
  for(i=0;i<leth;i++){  
    x[i]=float(x[i]+ellipse_a[i]*cos(angle[i]));
    y[i]=float(y[i]+ellipse_b[i]*sin(angle[i]));
    angle[i]+=step[i];
    if(angle[i]>TWO_PI){angle[i]-=TWO_PI;}
    if(x[i]<0){negation_X[i]=true;x[i]=-x[i];}
    else if(y[i]<0){negation_Y[i]=true;y[i]=-y[i];}
    else{negation_X[i]=false;negation_Y[i]=false;}
  }
}

Answers

  • edited October 2013 Answer ✓

    Did you try running this in the Processing IDE? It would give you many other errors first.

    For instance, 4eqation_Aequation_C does not make sense. Variables can not start with a number. You probably meant 4 * eqation_A * equation_C. I think there are a lot of * signs missing.

    You also mispelled equation_A as eqation_A.

    The problem is that you have declared equation_A and equation_B as arrays, but used them as floats, without the "[i]" part. You can not send an array of floats to sq().

    In the rotte() function, you added an unnecessary float() when assigning x[i], as all the elements are already float.

    It would be nice if, before posting your code in the forum, you formatted it in the processing IDE by pressing CTRL+T, and in the forum you surrounded it by <pre language="processing">yourcodehere</pre>. It would look so much nicer :)

  • such a simple error,thanks

Sign In or Register to comment.