Help with Macro Debugging

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Help with Macro Debugging

eumel
Hello,
I could really use some help for debugging a Macro in ImageJ.

// This macro draws the best fit ellipse for the current area selection.
// It uses the List.setMeasurements() and List.getValue() functions that
// were added to the macro language in ImageJ 1.42i.
 
  requires("1.42i");
  if (selectionType==-1)
      exit("Area selection required");
  List.setMeasurements;
  //print(List.getList); // list all measurements
  x = List.getValue("X");
  y = List.getValue("Y");
  a = List.getValue("Major");
  b = List.getValue("Minor");
  angle = List.getValue("Angle");
  getVoxelSize(w, h, d, unit);
  drawEllipse(x/w, y/w, (a/w)/2, (b/w)/2, angle);
  exit;

  function drawEllipse(x, y, a, b, angle) {
      autoUpdate(false);
      setLineWidth(2);
      beta = -angle * (PI/180);
      for (i=0; i<=360; i+=2) {
          alpha = i*(PI/180) ;
          X = x + a*cos(alpha)*cos(beta) - b*sin(alpha)*sin(beta);
          Y = y + a*cos(alpha)*sin(beta) + b*sin(alpha)*cos(beta);
          if (i==0) moveTo(X, Y); else lineTo(X,Y);
          if (i==0) {ax1=X; ay1=Y;}
          if (i==90) {bx1=X; by1=Y;}
          if (i==180) {ax2=X; ay2=Y;}
          if (i==270) {bx2=X; by2=Y;}
      }
      drawLine(ax1, ay1, ax2, ay2);
      drawLine(bx1, by1, bx2, by2);
      updateDisplay;
  }

When using this Macro the program always tells me that "[" is expected in the line where it says getVoxelsize
however adding a [ anywhere in that line gets me nowhere.
I am not really good with this things so any help would be much appreciated.

Thanks in advance.