日曜日, 11月 11, 2007

today's glitch 2


今日もglitch。

最初のものはグリッチを起こすタイミングをランダムに設定していたんだけど、周期的にずれ具合を変えるという風に変えてみた。koyachiさんが参考にしてたmikrosophtみたいに。
Flickr: Photos from mikrosopht

マウスのx位置とって何ピクセル目にグリッチさせるかってのを設定してる。どれくらいずらすかは毎回変わるので、同じ位置で何回かクリックしてみてもいい。preタグだと<があれなのでインデントこんなんですが、OSXだとprocessingIDEでコマンドキー+T(Toolsメニュー>Auto Format)で自動でインデントつけてくれるので、コピー&ペーストして試してみてください。

/*
inspired by HSYNC Glitch t.koyachi
http://d.hatena.ne.jp/koyachi/20071107
hysysk
*/
int interval= 1;
void setup() {
size(500, 375);
PImage imgsrc;
background(255);
noStroke();
int slideX = 0;
int slideY = 0;
int randSlideX = int(random(15));
int randSlideY = int(random(5));
imgsrc = loadImage("cXHwYYMtm1he27ib375S4A0e_500.jpg");
int glit=0;

loadPixels();
for(int j=0; j<height; j++) {
if(glit%interval==0) {
randSlideX = int(random(10));
randSlideY = int(random(5));
}
else {
slideX += randSlideX;
slideY += randSlideY;
}
for(int i=0; i<width; i++) {
int current = j * width + i;
int src = current + slideY * height + slideX;
if(src>=height*width) {
src = current - width;
}
pixels[current] = imgsrc.pixels[src];
glit++;
}

}
updatePixels();
}

void draw() {
interval = max(1,mouseX);
}

void keyPressed() {
saveFrame("glitch.jpg");
}

void mousePressed() {
setup();
}

0 件のコメント: