Peter de Jong attractorのこと

インターネット黎明期によく言われたことのひとつに「ホームページを開けば世界中の人が見に来てくれる可能性がある」というのがあったんですが、特に日本語で書いてるサイトにそんなにアクセスなんかあるわけないですから、大嘘だよなーとか思ってました。

ですが、2004年当時、まだalpha版だったProcessingで、「Gallery」の「Drawing by Peter de Jong attractor」に今回のせたような画像を、ランダムに描かせるアプレットを公開した時は、ほんとに海外からもたくさんアクセスしてもらって、たくさんリンクしてもらったりもして、こんなことがほんとにあるんだなーと、うれしかったもんでした。

当時は、Processingのアプレットを公開しているサイトを本家サイトに知らせると、リンクしてくれたというのが一番大きな理由なんですけど、ソースを公開していたこともあって、わけあってサイトを閉鎖するまでは、ずいぶん長いことリンクしてくれるところもあったんですよー。古き佳き時代の思い出です(笑)。

昔のブログのスクショ
当時のブログのスクショ(笑)

特に需要はないと思いますが、いちおうソースは下記のごとし(33行目の「draw()」は当時は「loop()」でした)。

/*
  Peter de Jong 01

  Created with Processing 68 alpha on Octover 13 , 2004
  http://www.harukit.com/
  
  inspiration
       http://www.wmute.org
       http://www.complexification.net
       http://astronomy.swin.edu.au/~pbourke/
*/


int dNum = 10000;
float sens=0.01;
float a0 =random(-2.5,2.5)*sens;
float a1 =random(-2.5,2.5)*sens;
float a2 =random(-2.5,2.5)*sens;
float a3 =random(-2.5,2.5)*sens;
float scal = 200;

Dot[] dot = new Dot[dNum];

void setup(){
  size(1000,750);
  background(255);
  noFill();
  for(int i=0;i<dNum;i++){
    dot[i]=new Dot(a0,a1,a2,a3);
  }
}

void draw(){
  translate(width/2,height/2);
  for(int i=0;i<dNum;i++){
    dot[i].update();
  }
}

void mouseReleased(){
  background(255);
  a0 =random(-2.5,2.5)*sens;
  a1 =random(-2.5,2.5)*sens;
  a2 =random(-2.5,2.5)*sens;
  a3 =random(-2.5,2.5)*sens;
  for(int i=0;i<dNum;i++){
    dot[i]=new Dot(a0,a1,a2,a3);
  }
}

class Dot {
  float nx,ny,ox,oy;
  color col;
  Dot(float a0,float a1,float a2,float a3){
    ox=random(-width/2,width/2);
    oy=random(-height/2,height/2);
    col = color(50,30,0,10);
  }
  void update(){
    nx=(sin(a0*oy)-cos(a1*ox))*scal;
    ny=(sin(a2*ox)-cos(a3*oy))*scal;
    stroke(col);
    line(nx,ny,nx,ny);
    ox=nx;
    oy=ny;
  }
}
%d人のブロガーが「いいね」をつけました。