在我的FloodFill课程中,我定义了一个resolution
方法,我想在setup
或draw
中调用该方法。但是当我添加resolution(String[] args);
来调用它时,我有一个错误,说我错过了一个右括号。
以下是整个代码:
static int[][] matrix={
{1,1,1,1,1,1,1,1,1,1,1},
{1,2,2,2,2,2,2,2,2,2,1},
{1,2,3,3,3,3,3,3,3,2,1},
{1,2,3,4,4,4,4,4,3,2,1},
{1,2,3,4,1,1,1,4,3,2,1},
{1,2,3,4,1,1,1,4,3,2,1},
{1,2,3,4,1,1,1,4,3,2,1},
{1,2,3,4,4,4,4,4,3,2,1},
{1,2,3,3,3,3,3,3,3,2,1},
{1,2,2,2,2,2,2,2,2,2,1},
{1,1,1,1,1,1,1,1,1,1,1},
};
void setup() {
size(1000, 600);
noCursor();
noStroke();
fill(0);
// periodic updates
if (!callback) {
frameRate(60); //<>//
loop();
} else noLoop(); // or callback updates
//int[][] array = new int[10][10];
//System.out.println(Arrays.deepToString(array));
tuioClient = new TuioProcessing(this);
System.out.println(Arrays.deepToString(grid));
resolution(String[] args) ;
}
void draw() {
// This part detects the fiducial markers
float obj_size = object_size*scale_factor;
float cur_size = cursor_size*scale_factor;
ArrayList<TuioObject> tuioObjectList = tuioClient.getTuioObjectList();
for (int i=0; i<tuioObjectList.size (); i++) {
TuioObject tobj= tuioObjectList.get(i);
stroke(0);
fill(0, 0, 0);
pushMatrix();
translate(tobj.getScreenX(width), tobj.getScreenY(height));
rotate(tobj.getAngle());
rect(-80, -40, 80, 40);
popMatrix();
fill(255);
x = round(10*tobj.getX ());
y = round(10*tobj.getY ());
iD = tobj.getSymbolID();
int taille = fiducialsList.length;
for (int o = 0; o<taille; o++) {
if (iD == o) {
myType = fiducialsList [o];
}
}
//System.out.println(myType);
activList.add(new Fiducial (x, y, iD, myType));
fiducialCoordinates ();
grid [x][y] = 1 ;
circuitState ();
for (int p = 0; p < 10; p++) {
for (int r = 0; r < 10; r++) {
System.out.print(grid[p][r] + " ");
}
System.out.print("\n");
}
System.out.print("\n");
// activList.removeAll(activList);
}
for (int[] row : grid)
Arrays.fill(row, 0);
}
void fiducialCoordinates () {
System.out.println(activList);
}
public static class FloodFill {
public static void resolution(String[] args) {
// Do stuff
}
public static void solve(int[][] matrix, int x, int y, int fillValue) {
// Do stuff
}
当我调用其他方法时(例如fiducialCoordinates ();
),它可以正常工作。是否有另一种方法来调用此方法,因为它是在特定类中定义的?
这是在Processing中使用的java。 谢谢你的帮助
答案 0 :(得分:1)
致电时不需要String[]
。
FloodFill.resolution(args) ;
应该足够了
答案 1 :(得分:1)
调用方法时,请勿指定参数的类型:
resolution(args);
应该有效(除了args
未定义 - 您需要将这些方法从setup()
方法传递给main()
方法。)
此外,resolution
是在单独的类中定义的,因此您必须像这样调用它:
FloodFill.resolution(args);