i2i無料WEBパーツ
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
最近、プログラムでCGを作成するとかいう事に興味がありまして、Processingを試してみました。
プログラムで線を引くなんて、中学生の時にMSXでやった以来かな・・・(汗
line文とかで。懐かしすぎますね><

↓こんか感じのCGがプログラムで作成できるとは容易に想像できませんが、まあ、物は試しですからね。
Processing | Neu Black

↓こちらのサイトを参考に挑戦してみました。
Processing 学習ノート
a-06 図形を描く, 色を使う(その2) - Processing 学習ノート

太陽の絵を描いてみようという課題があったので、以下を作ってみました。
三角関数の知識は必須ですね。。久しぶりに頭を使った気がします。


size(1200, 1200);
colorMode(HSB, 100);
background(99);

int intInitX = 600;
int intInitY = 600;
float d = 250.0;
float colorIndex = 0;

//write circle
for(int i = 0; i < d; i++){
noFill();
float fRand = random(20);
float digit = random(4);
float w = random(3);
colorIndex = i*20/500;
println(colorIndex + ":" +i);
stroke(colorIndex,100,100);
strokeWeight(0 + w);
if(digit > 1 && digit < 2){
ellipse(intInitX + fRand, intInitY + fRand, i+ fRand, i+ fRand);
}else if(digit > 2 && digit < 3){
ellipse(intInitX - fRand, intInitY - fRand, i+ fRand, i+ fRand);
}else if(digit > 3 && digit < 4){
ellipse(intInitX - fRand, intInitY + fRand, i+ fRand, i+ fRand);
}else{
ellipse(intInitX + fRand, intInitY - fRand, i+ fRand, i+ fRand);
}
}

//
stroke(colorIndex,100,100);
strokeWeight(1);
float baseLength = 25.0;
float trHeight = 60.0;
for(int z=0; z<36 ; z++){
float angle = 10.0 * z;
float r=d/2;
//println ((intInitX+r*cos(r-0.1432)) + "," + (intInitY+r*sin(r-0.1432)));
//println ("---:"+angle);
//println ("1:"+(intInitX+r*cos(angle-atan(baseLength/r))) + "," + (intInitY+r*sin(angle-atan(baseLength/r))));
//println ("2:"+(intInitX+(r+40)*cos(angle)) + "," + (intInitY+(r+40)*sin(angle)));
//println ("3:"+(intInitX+r*cos(angle+atan(baseLength/r))) + "," + (intInitY+r*sin(angle+atan(baseLength/r))));
fill(0,99,99);
text(z,(intInitX+(r+trHeight)*cos(angle)),( intInitY+(r+trHeight)*sin(angle)));
fill(colorIndex, 100, 100, 20+random(30));
triangle(
intInitX+r*cos(angle-atan(baseLength/r)), intInitY+r*sin(angle-atan(baseLength/r)),
intInitX+(r+trHeight)*cos(angle), intInitY+(r+trHeight)*sin(angle),
intInitX+r*cos(angle+atan(baseLength/r)), intInitY+r*sin(angle+atan(baseLength/r))
);
}

save("test.jpeg");


で、出力された画像がこちら。なんか三角形の位置が思ってたのと違うなぁ・・・(汗
10度づつ出力させるつもりだったんだけどw

WS000449.jpg

■感想
なかなか、おもしろいですね。これ。Sound Visualizerみたいの作ってみたいですな。
できれば、家であそぶなら、PureDataとかvvvvみたいにノードをグニグニしてたらできちゃった
みたいなノリでやりたいんですが、地道にコーディングしなきゃいけないのがだるいですね。


■Processingに関連するリンクのメモ
Processing 1.0 _ALPHA_ » Reference
Processing入門8

コメント

このコメントは管理者の承認待ちです

コメントの投稿

  • URL
  • コメント
  • パスワード
  • 秘密
  • 管理者にだけ表示を許可する

トラックバック

トラックバックURL:http://kevinjohnson2.blog69.fc2.com/tb.php/486-9c2a5102
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。