ポリアンナ症候群

変なものを求めていきています

processingでローレンツ曲線

ネットサーフィンしてたらprocessingという物を見つけたのでやってみた。

float x = 0.01;
float y = 0.01;
float z = 0.01;

float dx;
float dy;
float dz;
float dt = 0.02;

float p = 10;
float r =28;
float b = 8/3;

final int POINT_SIZE = 10000; //final int : fixed number

float [][] pointAry = new float[3][POINT_SIZE];

void setup() {
  size(500,500,P3D);
  colorMode(RGB,256);
  smooth();
  background(0,0,0);
  frameRate(1);
  for(int i=0; i<POINT_SIZE; i++) {
    dx = (- p*x + p*y) * dt;
    dy = (- x*z + r*x - y) * dt;
    dz = (  x*y - b*z) * dt;
    x += dx;
    y += dy;
    z += dz;
    pointAry[0][i] = x*7;
    pointAry[1][i] = y*3;
    pointAry[2][i] = z*5;
  }
}

void draw() {
  translate(width/2,height/2,30);
  for(int i=0; i<POINT_SIZE; i++){
    stroke(0,255,255);
    point(pointAry[0][i],pointAry[1][i],pointAry[2][i]);
  }
  
  saveFrame();
}

で、これでこんなのができる。綺麗だ。 f:id:lee_fetia:20170520161228p:plain