日常の進捗

主に自分のための,行為とその習慣化の記録

Processing

HE_MESH Tutorial (5)ベートーベンのポリゴンを削減する

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…

Mod: Coding Challenge #81.2: Circle Morphing - Part 2

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)…

Mod:Coding Challenge #81.1: Circle Morphing - Part 1

円から三角形のモーフィング,パート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/…

HE_MESH Tutorial (4)

ライブラリ 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 Tutorial (3)

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…

HE_MESH Tutorial (2)

ライブラリ PeasyCam ControlP5 HE_Mesh 上記ライブラリをContribution Managerで検索してインストールする コード import controlP5.*; import peasy.*; import peasy.org.apache.commons.math.*; import peasy.org.apache.commons.math.geometry.*; import…

HE_MESH Tutorial (1)Basic

コード 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 …

N角形の各辺に内接するN角形

コード // setup関数 : 初回1度だけ実行される void setup() { size(960, 540); // ウィンドウサイズを960px,540pxに colorMode(HSB, 360, 100, 100, 100); // HSBでの色指定にする blendMode(ADD); smooth(); // 描画を滑らかに stroke(0, 0, 100); frameRa…

ProcessingでFizz Buzz

21世紀,プログラミング界隈には,Fizz Buzzという概念がある. Fizz Buzz - Wikipedia プレイヤーは円状に座る。最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、3で割り切れる場合は「Fizz…

Processingでズンドコキヨシ

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>…

game of life

コード 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;…

Mod: Guest Tutorial #6: The Modulo Operator with Golan Levin

朝起きてなんとなくチュートリアルの動画を流しながら朝支度するのが日課ぽくなってる.今日はクリエイティブ・コーディングやメディアアートで著名なGolan Levinが剰余演算について話してる回を観た.剰余演算自体はプログラミングをやっていれば使う便利な…

Mod: Coding Challenge #74: Clock with p5.js

なんか微妙なので昔書きかけだった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>…

Mod:Coding Challenge #59: Steering Behaviors

操舵するような振る舞い,というのが直訳なのかな. 運転中に車でハンドルを切る時を想像して欲しい(免許持ってないひとはゲームでも良い).移動してる物体がいきなり90度進行方向を変えるみたいなことはできない.慣性に引っ張られながら進行方向を変える…

Mod:Coding Challenge #55: Mathematical Rose Patterns

数学的薔薇.今回のコードで言うと変数dとnの関係でパターンが以下のように変化する. By Jason Davies, CC BY-SA 3.0, Link 15行版書けるかなと思って取り組んだが,書けた. こういう良い感じのパターン見るとタイリングで作ってみたくなるのでまた後で書…

Mod:Coding Challenge #56: Attraction and Repulsion Forces

引力と斥力をシミュレーションする.このへんはNature of Codeに書かれてたのでなんとなく手癖で書ける部分がある.アトラクターがパーティクルを引っ張る力を持っていて,そいつに近づきすぎると今度は斥力を発生させて,これまで引っ張っていた力を反転さ…

Mod: Coding Challenge #50: Animated Circle Packing

Processing.jsだと継承したクラスがスーパークラスのプロパティを呼び出す時,this付けないとエラーが出るようだ. コード(PGraphis版) ArrayList<Circle> circles; ArrayList<PVector> points; PGraphics pg; void setup() { size(960, 540); colorMode(HSB, 360, 100, 100</pvector></circle>…

Mod: Coding Challenge #47: Pixel Sorting in Processing

画像のピクセルごとのソーティング(並び替え).for文で順番にピクセルを見ていって,ピクセルの彩度(Hue)や明度(Brightness)を確認,その値が大きい場合に色を置き換える(スワップする). スワップは2つの値を置き換えるやり方で,巡回セールスパー…

Mod: Coding Challenge #35.1 + 35.2 : Traveling Salesperson

トラベルサラリーマンじゃなくて,巡回セールスパーソン問題ってやつ.イメージはセールスパーソンが幾つかの都市に出張営業する経路を考える時に,移動距離が一番短くなる経路を導き出すというもの.総当りで出すけど経路の組み合わせと計算をシリーズで考…