Processing
import wblut.geom.*; import wblut.hemesh.*; import wblut.core.*; import wblut.math.*; import wblut.nurbs.*; import wblut.processing.*; import peasy.*; import peasy.org.apache.commons.math.*; import peasy.org.apache.commons.math.geometry.*;…
OpenProcessingが落ちているのでコードをあげられないが,書いた.15行であるレベルのコードが書けると気持ちいい.失敗するとズッコケた感じになる.今回は比較的余裕があったので色とか触れた. vertexの最後の行で次の半径へスムーズにつなげるようにして…
最近どうもProcessingでコーディングしてる最中に悩むことが増えた.昔はもっと雰囲気で良い感じに書く速度が早かった気がする.今は目的(15行で様々なバリエーションを作る)をもって書いてるので仕方ないのかもしれないが,もう少しイメージとコードを近…
コード fullScreen(); for (float y = height*2; y > 0; y -= height/20) { float yn = y; float xn = 0; strokeWeight(10); beginShape(); while (yn >= 0) { vertex(xn, yn); xn += width/20; vertex(xn, yn); yn -= height/30; vertex(xn, yn); } endShap…
p5.jsで書かれてたコードを読み解きながらProcessingにポーティングした. コード ArrayList<Point> circlePath = new ArrayList<Point>(); int spacing = 1; float t; void setup() { size(960, 540); colorMode(HSB, 360, 100, 100); setN(); strokeJoin(ROUND); strokeC</point></point>…
コード fullScreen(); background(255,255,255); for (int i = 0; i < 100000; i++) { float x = random(width/2); float y = random(height); point(x, y); } translate(width/2, 0); for (int i = 0; i < 100000; i++) { float x = (random(width/2)+rando…
コード fullScreen(); colorMode(HSB, 360, 100, 100); background(0, 0, 100); for (float x = width * 3/4; x > width * 1/4; x -= 50) { float y = height /2; fill(int(random(5))*360/5, random(80, 100), random(80, 100)); stroke(0,0,100); beginSha…
コード size(960, 540, P2D); // ウィンドウサイズを960px,540pxに colorMode(HSB, 360, 100, 100); // HSBでの色指定にする float grid = 15; background(0, 0, 100); for (float y = 0; y < height; y += grid) { for (float x = 0; x < width; x += grid)…
円から三角形のモーフィング,パート1.円周上の点,三角形の辺上の点をそれぞれ配列として保存して,その間を動く点を描画する. コード ArrayList<PVector> circlePath = new ArrayList<PVector>(); ArrayList<PVector> trianglePath = new ArrayList<PVector>(); int n = (int)random(3,10); i</pvector></pvector></pvector></pvector>…
コード fullScreen(); translate(width/2, height/2); noiseSeed(10111101); float maxR = sqrt(width*width+height*height); for (float r = maxR; r > 0; r -= maxR/100) { pushMatrix(); beginShape(); for (float angle = 0; angle < 360; angle += 360/…
ライブラリ PeasyCam ControlP5 HE_Mesh 上記ライブラリをContribution Managerで検索してインストールする コード 01 import controlP5.*; import peasy.*; import peasy.org.apache.commons.math.*; import peasy.org.apache.commons.math.geometry.*; imp…
HE_MESH,難しいイメージだったけど,やっていくとわかることもある. – All classes prefixed by HE_ specify core classes for accessing specific data concerning our mesh. – All classes prefixed by HEC_ specify creators for creating & configurin…
ライブラリ PeasyCam ControlP5 HE_Mesh 上記ライブラリをContribution Managerで検索してインストールする コード import controlP5.*; import peasy.*; import peasy.org.apache.commons.math.*; import peasy.org.apache.commons.math.geometry.*; import…
コード import controlP5.*; import wblut.geom.*; import wblut.hemesh.*; import wblut.core.*; import wblut.math.*; import wblut.nurbs.*; import wblut.processing.*; WB_Render3D render; HE_Mesh mesh; int setTubeFacets; int setTorusFacets; int …
コード // setup関数 : 初回1度だけ実行される void setup() { size(960, 540); // ウィンドウサイズを960px,540pxに colorMode(HSB, 360, 100, 100, 100); // HSBでの色指定にする blendMode(ADD); smooth(); // 描画を滑らかに stroke(0, 0, 100); frameRa…
21世紀,プログラミング界隈には,Fizz Buzzという概念がある. Fizz Buzz - Wikipedia プレイヤーは円状に座る。最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、3で割り切れる場合は「Fizz…
21世紀,プログラミング界隈には,ズンドコキヨシという文化がある. Javaの講義、試験が「自作関数を作り記述しなさい」って問題だったから「ズン」「ドコ」のいずれかをランダムで出力し続けて「ズン」「ズン」「ズン」「ズン」「ドコ」の配列が出たら「キ…
CA ca; int scale = 5; // setup関数 : 初回1度だけ実行される void setup() { size(960, 540); // ウィンドウサイズを960px,540pxに colorMode(HSB, 360, 100, 100); // HSBでの色指定にする smooth(); // 描画を滑らかに int[] rule = {0, 1, 0, 1, 1, 0, …
float g = 0.8; int num = 100; ArrayList<Mover> movers = new ArrayList<Mover>(); // setup関数 : 初回1度だけ実行される void setup() { fullScreen(); // ウィンドウサイズを960px,540pxに colorMode(HSB, 360, 100, 100,100); // HSBでの色指定にする smooth(); // </mover></mover>…
コード GOL gol; void setup() { size(960, 540); colorMode(HSB, 360, 100, 100); gol = new GOL(); } void draw() { background(0, 0, 100); gol.generate(); gol.display(); if (frameCount%200 == 0) { gol.init(); } } void mousePressed() { gol.init(…
コード noise / 15 lines of code fullScreen(); noiseSeed(100); noFill(); beginShape(); for (float x = 0; x <= width; x += width/30) { float y = map(noise(x*0.001),0,1,0,height); vertex(x, y); } endShape(); fill(0, 0, 100); for (float x = 0;…
朝起きてなんとなくチュートリアルの動画を流しながら朝支度するのが日課ぽくなってる.今日はクリエイティブ・コーディングやメディアアートで著名なGolan Levinが剰余演算について話してる回を観た.剰余演算自体はプログラミングをやっていれば使う便利な…
なんか微妙なので昔書きかけだった7セグメントの時計も改めて書いてみた. コード(サークルクロック) float hlen = 130; float mlen = 230; float slen = 230; float lastMillis; void setup() { size(600, 600,P2D); colorMode(HSB, 360, 100, 100, 100);…
昨日の続き,というより自由にコーディングしてみる.旋回する動きを数珠つなぎにして前の動きを追従するようにしている. コード ArrayList<Tracer> tracers; Mover mover; int num = 20; void setup() { size(960, 540); colorMode(HSB, 360, 100, 100); tracers =</tracer>…
操舵するような振る舞い,というのが直訳なのかな. 運転中に車でハンドルを切る時を想像して欲しい(免許持ってないひとはゲームでも良い).移動してる物体がいきなり90度進行方向を変えるみたいなことはできない.慣性に引っ張られながら進行方向を変える…
数学的薔薇.今回のコードで言うと変数dとnの関係でパターンが以下のように変化する. By Jason Davies, CC BY-SA 3.0, Link 15行版書けるかなと思って取り組んだが,書けた. こういう良い感じのパターン見るとタイリングで作ってみたくなるのでまた後で書…
引力と斥力をシミュレーションする.このへんはNature of Codeに書かれてたのでなんとなく手癖で書ける部分がある.アトラクターがパーティクルを引っ張る力を持っていて,そいつに近づきすぎると今度は斥力を発生させて,これまで引っ張っていた力を反転さ…
Processing.jsだと継承したクラスがスーパークラスのプロパティを呼び出す時,this付けないとエラーが出るようだ. コード(PGraphis版) ArrayList<Circle> circles; ArrayList<PVector> points; PGraphics pg; void setup() { size(960, 540); colorMode(HSB, 360, 100, 100</pvector></circle>…
画像のピクセルごとのソーティング(並び替え).for文で順番にピクセルを見ていって,ピクセルの彩度(Hue)や明度(Brightness)を確認,その値が大きい場合に色を置き換える(スワップする). スワップは2つの値を置き換えるやり方で,巡回セールスパー…
トラベルサラリーマンじゃなくて,巡回セールスパーソン問題ってやつ.イメージはセールスパーソンが幾つかの都市に出張営業する経路を考える時に,移動距離が一番短くなる経路を導き出すというもの.総当りで出すけど経路の組み合わせと計算をシリーズで考…