-1

我正在尝试在 java 中构建一个算法,它看起来像这样:

while (true) {
    Point p; //a point given in the class constuctor.
    p.x+=1*factor;
    checkColor(p); // a function that returns true or false for a pixel color.
    p.y+=1*factor;
    checkColor(p);
    p.x-=2*factor;
    checkColor(p);
    p.y-=*factor;
    ... ...
}

这将使用一个 int 因子;这将增加循环中的每个周期,但我的观点是,当我调用 aa 函数时,是否有办法存储将一次执行 1 行的“操作行”。

4

2 回答 2

0

做这样的事情怎么样:

private processSequence = 0;
public void modifyPoint(Point p, int factor) {
  // do the stuff you need to do with x and y
  switch (processSequence) {
     case 0: p.x+= factor; break;
     case 1: p.y+=factor; break;
     ... etc
  }
  processSequence++;
  processSequence = processSequence % 4; 
}


...
while (true) {
  modifyPoint(p,factor);
  checkColor(p);
}

你真正想做的事情并不容易从它本身的问题中理解。

于 2012-06-25T22:22:11.067 回答
0

一个 SWAG,因为我仍然不知道您要做什么,但也许像......

  Point p = new Point(/* something? */);
  for (int i = -1; i <= 1; i++) {
     for (int j = -1; j <= 1; j++) {
        if (i != 0 || j != 0) {
           Point p2 = new Point(p.x + i * factor, p.y + i * factor);
           checkColor(p2);
        }
     }
  }
于 2012-06-25T22:24:24.887 回答