作者 主题: [已解决]2d array不同行插值变化不能返回行[0]  (阅读 3361 次)

小雍子

  • Newbie
  • *
  • 帖子: 20
[已解决]2d array不同行插值变化不能返回行[0]
« 于: 七月 02, 2013, 01:41:10 上午 »
一个很简单的小程序,首先创建一个随机二维数组kk,然后t(currentrow); 代表选出kk中的其中一行给到数组target,currentrow由键盘x或者a键控制大小。draw里面内容是让now不断靠近target。row和target初始都为kk[0]。 当currentrow先增大再减小回0的时候,target不能正常返回kk[0],这是怎么回事。。

程序代码
float[][] kk = new float[5][5];
int currentrow = 0;
float[] now = new float[5];
float[] target = new float[5];

void setup(){
  size(100,100);
  for(int i=0;i<5;i++){
    for(int j=0;j<5;j++){
      kk[i][j] = random(100);
    }
  }
  now = kk[0];
}

void draw(){
  t(currentrow);
  for(int i=0;i<5;i++){
    now[i] += (target[i]-now[i])*0.1;
  }
  println(currentrow + ":");
  println(now);
  //println(target);
  println("-------");
}

void t(int current){
  target = kk[current];
}



void keyPressed(){
  if(currentrow<4){
    if(key == 'x'){
      currentrow++;
     
    }
  }
 
  if(currentrow>0){
    if(key == 'z'){
      currentrow--;
    }
  }
 
  if(key== '0'){
    currentrow=0;
  } 
}
« 最后编辑时间: 七月 02, 2013, 01:01:20 下午 作者 小雍子 »

小雍子

  • Newbie
  • *
  • 帖子: 20
Re: 2d array不同行插值变化不能返回行[0]
« 回复 #1 于: 七月 02, 2013, 01:01:01 下午 »
已经解决。初始化的时候误将
程序代码
now = kk[0]

应该改为
程序代码
for(int i=0;i<5;i++){now[i] = kk[0][i];}

vinjn

  • SuperManager
  • Hero Member
  • *****
  • 帖子: 586
Re: [已解决]2d array不同行插值变化不能返回行[0]
« 回复 #2 于: 七月 02, 2013, 01:02:05 下午 »
自问自答,nice

Tags: