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

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

Processingで円グラフを描く

半円の向きをランダムにしてくっつけて、1つの円にしようと思っていろいろやってたら、円グラフを描くやり方が公式で解説されていた
PieChart \ Examples \ Processing.org
のでそちらを参考にしました。

こんな感じです。半円の角度と色がマウスボタンを押すごとに変わります。
レーザーカッターで円形にくり抜いてカラフルなコースター的なものを作ろうとしてたのですが、配色を考えるのがめんどくなったのでProcessingで書きました。
f:id:prince9:20170721114948p:plain

//円グラフのデータ
int[] angles = {180, 180};

void setup() {
  size(600, 600);
  background(#FFFFFF);
  noStroke();
  noLoop();  
  colorMode(HSB,360,100,100);
}

void draw() {
  
   pieChart(150,150,100, angles);
}

void pieChart(int posiX,int posiY,float diameter, int[] data) {
  //3列×3列
  for(int n = 0; n < 3; n++) {
    for(int j = 0; j < 3; j++) {
      //境界線の角度
      float lastAngle = random(360);
  for (int i = 0; i < data.length; i++) {
   
    fill(int(random(360)),30,100);
    //実際の円グラフ
    arc(100+posiX*n, 100+posiY*j, diameter, diameter, lastAngle, lastAngle+radians(data[i]));
    lastAngle += radians(data[i]);
  }
    }
  }
  
}



void mousePressed() {
  redraw();
}