【Processing】copy()を使ってみる(3)

 

 

PImage img; //画像のオブジェクトを宣言
float a = 0.001;
int y = 0 ; //ペースト位置y
int y2; //ペースト位置y
int area = 100;
int start = -area;

void setup(){
img = loadImage("snj.jpg"); //画像をロードする
size(559,800);   //画面サイズ
image(img,0,0,width,height); //画像を表示
}

void draw(){
  image(img,0,0,width,height); //画像を表示
    int x = 0;
for(int i = 0 ; i < area ; i++ ){
    y = start+i;
    x += (i * i)*a;   
    
    if(x > width){
    x = 0 + (width - x);}
    
    copy(img,0,y,width,1,int(x),y,width,1);
    copy(img,0,y,width,1,int(x)-width,y,width,1);
}


  float x2 = x; 
  for(int i = -area ; i < 0 ; i++ ){
    y2 = y + area + i;
    x2 -= (i * i)*a; 
    
    if(x2 < 0){
    x2 =  0 - x2;}
    
    copy(img,0,y2,width,1,int(x2),      y2,width,1);   
    copy(img,0,y2,width,1,int(x2)-width,y2,width,1); 
}


start +=10;
if(start > height){
start = -area;
}
}

 

int型だからめんどくさい!