まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません

Processingでコロナみたいなのを描く

ロマサガ3の死食(日食)っぽい?
こちらfrilly ring - OpenProcessing
でProcessing.jsのモードになってたので、P5モードかつマウスクリックでランダムに形が切り替わるようにしました(ので変数名変えてないです)。
参考にさせて頂きました。ありがとうございます。
あまりコード変わってないですが、P5でやりたい方のお役に立てば。

f:id:prince9:20170824030110p:plain



float r1,r2,radian;
float nScale = 0.003;

PVector nOffset1,nOffset2,v1,v2;



void setup() {
 size(600, 600);
  background(255);
noLoop();
  
}

void draw() {

    background(0);



   


    nOffset1 = new PVector(random(10000), random(10000));
  nOffset2 = new PVector(random(10000), random(10000));
  
  translate(width / 2, height / 2);
  beginShape(QUAD_STRIP);
      stroke(255);
    fill(255);
  for(float angle = 0; angle <= 360; angle += 2) {
    radian = radians(angle);
    v1 = new PVector(100 * sin(radian) * nScale, 100 * cos(radian) * nScale);
    v2 = new PVector(300 * sin(radian) * nScale, 300 * cos(radian) * nScale);

//サイズを小さくしたいときは、r1とr2の50,125のあたりをいじるとOK(元は100, 250)
    r1 = map(noise(v1.x + nOffset1.x, v1.y + nOffset1.y, 30 * 0.01), 0, 1, 50, 125);
    r2 = map(noise(v2.x + nOffset2.x, v2.y + nOffset2.y, 30 * 0.01), 0, 1, 50, 125);
    vertex(r1 * sin(radian), r1 * cos(radian));
    vertex(r2 * sin(radian), r2 * cos(radian));
    

   
  

  
  }
  endShape();
  

     
}

void mousePressed() {

      redraw();// ボタンが押されたときだけ再描画
      
}