日常の進捗

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

p5.js

クリエイティブコーディング学習の最適解「ルートB」としてのp5.js

はじめに これはProcessing Advent Calendar 2018の3日目の記事です. 昨年のProcessing Advent Calendar 2017では「クリエイティブコーディング学習の最適解としてのProcessingと,デイリーコーディングのススメ」というエントリを書きました.このエントリ…

#Codevember day16: Star

最近どうも思ったように時間が取れず,こういう自分の楽しみを納得いくところまで作業が進められない.それはそれで仕方がない部分もありつつ,違う楽しさを見つけるような感じにもなってきている.3Dの立体視はカメラつまり視点からの距離で赤/緑などの色…

#Codevember day15: Fire

なんとなくフィーリングで書けるなとおもったら,過去書いたCoding Trainのアルゴリズムを思いっきり踏襲していた. 風や消滅の処理を,もうちょっとエレガントに書けるようになっておきたい. //inspired by https://thecodingtrain.com/CodingChallenges/0…

#Codevember day14: Coffee

色を取得して,RGBの3つの値をXYZのような距離として,特徴的な色を抽出するテスト. ……と思ったがあまりうまくいかなかった. p5.js Web Editor let img; let rows; //行(Y方向) let cols; //列(X方向) let colors = []; //画像の読み込み function pre…

#Codevember day12: Bread

お題が「Bread」だったのでをつかってp5.jsのグラフィックス機能(レイヤーみたいなやつ)を使ってみた. ProcessingでいうところのPGraphicsとの挙動が違う点が現時点ではあったのでちょっとハマった. beginDraw,endDrawは使わない. グラフィクスに描画し…

#Codevember day11: RGB

ザ・手癖でコーディングした. function setup() { createCanvas(windowWidth, windowHeight, WEBGL); } function draw() { background(0); ambientLight(100); directionalLight(255,255,255,0,0,1); normalMaterial(); translate(0,0,-500); // 回転 rotat…

#Codevember day10: Apple

以前p5.jsでobjのロードは経験があったけど,動かなくなっててハマった.現状バージョンを下げて対応できることがissueで確認できたのでそれでやってみた. //p5.jsのバージョンv.0.5.11を使用 let obj; function preload(){ obj = loadModel("apple.obj"); …

#Codevember day09: Green

let sw; let sc; let depth; let noiseScale; function setup() { createCanvas(400, 400); colorMode(HSB,360,100,100,100); angleMode(DEGREES); sw = 10; sc = color(0,0,100); depth = 0; noiseScale = random(100,400); } function draw(){ background(…

#Codevember day08: Cat

角丸の多角形など,チャレンジしたいこともあったが時間もあり,今回はたどり着けなかった.しかしやれることはやった Add rounding corners of triangles. · Issue #2529 · processing/p5.js · GitHub let dark_yellow; let yellow; let light_yellow; let …

#Codevember day07: Sea

乗算をすると海の深さが表現できるかなと思ってblendModeを使ってみた.見ている時間で背景の色が変わるようにしている.レイヤーの合成の概念はもう少しきちんと理解しておきたいけど,ひとまず. let font; let gridY; let gridX; let noiseScaleX = 250; …

#Codevember day06: Web

いわゆる地味グラミングだけど蜘蛛の巣を張るをやってみる.中の連結をlineで引いてるけど角度計算は三角形だしbezierでできそう. 0〜360度の角度のなかでランダムに角度を増やしながらrotateで回転しながら線を引く. 回転しながら引かれる線Aと次の線Bの…

#Codevember day05: Music

再生すると音が出ます,すいません. // fork and port from 94's processing code. // http://94.hatenadiary.jp/entry/2018/11/04/013440 let sound_top; let sound_bottom; let sound_right; let sound_left; let sound_vertical; let sound_horizontal; …

#Codevember day04: Sky

「コーディングチャレンジ的なものを続けるコツ」は,軽くてもいいので1日のうちで早い時間にアップするのがいい. 早くアップできると気分が軽くなるし,あとで手も入れやすい.たとえば明日のCodevemberのお題は「Music」だけど,早めに取り組んであげられ…

#Codevember day03: Carrot

人参みたいなかわいいお題,いけるんかなとおもったけどいけた.過去に書いた根茎図のプログラムがつかえるなーと思ってp5.jsに転用した. takawo.hatenablog.com //modify from my past sketch in p5. //http://takawo.hatenablog.com/entry/2017/12/30/152…

#Codevember day02 : Time

時計ぽいプログラムを書こうかなと思って絵文字などを配列に突っ込んでいたらどうも行き詰まったので,以前書いたヴィンテージのコンピュータグラフィックスをp5.jsにポーティングした.意外と楽だったけど質感が面白くできないかとおもって,線の透明度を変…

p5.jsで外部ファイルを扱う方法をGoogle Fontsを例に説明する

p5.jsで外部ファイルを読み込んで利用する手順を,フォントを読み込む例としてまとめておく.フォント以外にも音声ファイルや画像ファイル,映像ファイルを読み込めるようだ.アップロードできる容量は制限があるものの,Webでのグラフィックス表現としては…

#Codevember day01 : Infinity

Codevemberは11月1日から30日までの1ヶ月間,毎日設定されているお題に合わせてプログラミングでスケッチするという一種のコーディングチャレンジ.お題はウェブサイトから確認できる.NovemberとCode Dev.あたりが掛かってるのかな.日本語だとついコーデン…

Mod: Coding Challenge #83: Chrome Extension with p5.js Sketch

p5.jsを使って以前Chrome拡張を作ることをやってみた. takawo.hatenablog.com が,開くWebサイトによって実行されなかったりすることもあって原因がわからなかった. 今回の内容では,p5.jsを使ってChrome拡張を作るというまんまな内容で,普段書いているグ…

Chrome拡張(6)p5.jsで作る,バックグラウンドで動作するChrome拡張

タイトル通り,背景でなんとなくジェネラティブに動くものをChrome拡張を使ってやりたいと思い立った.今回は,個人的な興味でp5.jsを使うことにした.その理由は以下. p5.js自体が微妙に重い(通常版が2.6MB,min版が1.2MB)ので,逆にローカルにダウンロ…

Mod:Coding Challenge #3: The Snake Game

スネークゲーム。チュートリアルではを矢印キーで動かすものだったが、操作するの面倒だったので、が自動で餌を追従するようにプログラムを書き換えた。気分を変えようとp5.jsで書いてみた。 var snake; var scl = 10; var food; function setup() { createC…