日常の進捗

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

2017-01-01から1年間の記事一覧

Mod: Coding Challenge #47: Pixel Sorting in Processing

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

Mod: Coding Challenge #35.1 + 35.2 : Traveling Salesperson

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

ガチャガチャと3Dプリンタ(1)硬貨と寸法

オープンキャンパスでリアルガチャ回したくて,コインの寸法を確認してモデリングした. コレ自体はお金として考えてないし,お金ではない.ただコインとそのポケットの噛み合わせの寸法はモノが関係性を持つときに,その機能として考慮する必要があって,そ…

Mod:Coding Challenge #34: Diffusion-Limited Aggregation

Diffusion-Limited Aggregation,日本語訳すると「拡散律速凝集(かくさんりっそくぎょうしゅう)」.なんのこっちゃという感じであるが,フラクタルやシミュレーション系のアルゴリズムとしてよく使われている. 空間に自由な粒子(パーティクル)が舞って…

Mod:Coding Challenge #33: Poisson-disc Sampling

Poisson-disk Samplingは,ランダムに分布する点の集合をサンプルする方法.普通にランダムを使うと,偏りが生まれる.それに対してPoisson-disk Samplingは,ルールとして一定間隔に分布するように距離を測って置いていく.そのアルゴリズムが幾つかあるよ…

カードゲーム「15 lines of <code>」(2)雰囲気でコーディングする

カードゲームのサンプルを考えるにあたって,材料となる15行のコードを幾つか用意したくなったので,例によって特に意識をしないで雰囲気でコードを書いてみた.前にarcをつかって円弧の連結でパターンを作ったものを15行版に出来ないかと思って始めたら形に…

Mod:Coding Challenge #31: Flappy Bird

横スクロールゲーム「Flappy Bird」ライクなものを作る.画面をクリックしてからスペースキーを叩くと,ボール(鳥)が羽ばたく.それで左から流れてくる土管を避ける.スコア機能や色をつけるなど実装した.暇な時にパソコンで遊んでください. コード Bird…

六角形のグリッドを敷き詰める

毎回TweakModeでなんだかなという感じで雰囲気で組んでいた六角形のグリッドを15行コーディングの1つに入れたいなと思い、きちんと組んでみることにした。図形の平面充填(テセレーション)は研究されてて資料が多い。六角形のグリッドは以下のページが参考…

Mod:Coding Challenge #78: Simple Particle System

パーティクル(粒子)のシミュレーションをなるべくシンプルに記述するというもの。やってると発見がある。noiseをつかって少し揺れるようにした。グローっぽい表現を組み込むとか、もう少し改変したかったけどタイムアップ。OpenProcessingに掲載しているも…

Mod:Coding Challenge #30: Phyllotaxis

29が重すぎたので一旦飛ばした。Phyllotaxis、葉序とか言われる、茎上の葉の配び方の研究のことみたい。やってる事自体は数式があってそのパターンでひまわりの種子の配列のようなものを描くというもの。そこまで難しくなかったというか、式をコードにするの…

カードゲーム「15 lines of <code>」(1)試作

前にプログラミング、特にProcessingの学習をテーマにしたボードゲームを作りたいという話をログに残した。今日は電子工作とかのハードウェア系の作業をしていてちょっと脳がクタクタになりつつ、少し進めていたサンプルコードや材料も揃ったので、別の作業…

壁付けスイッチをサーボモータでON/OFFする(1)モデリング

出落ち感が半端ないけど、壁についているスイッチをサーボモータで制御する。ネット経由でスマホから制御したり、赤外線でコントロールしてもいい。複数のサーボの制御は以前やってるので、姿勢のリセット(スイッチON/OFFした後に、サーボホーンの角度を最…

Mod:Coding Challenge #77: Recursion

今回は再帰について。 関数のなかで実行される命令に条件を書いて、その条件を満たす範囲において関数が関数自身を実行するというもの。ウロボロスのっぽいイメージ。永遠に実行されてしまうことを防ぐために条件が必要。今回は半径を小さくしつつ中心座標を…

Chrome拡張(4)特定のページで背景画像を変更する

今後CSSのプロパティ触ったりするのを簡単に書けたら良いと思ったのでjQueryを読み込んで使うようにした。今後使用する画像が増えてきた場合manifest.jsonのweb_accessible_resourcesに列記するのも大変なので、画像(cat.jpg)はimagesフォルダを作ってそこ…

Chrome拡張(3)特定のページで音源を再生する

前回の続き。特定のページで自作の音源ファイルを再生させたい。とする。試行錯誤しつつ、 DOMException: Failed to load because no supported source was found. というエラーが出て音源が再生できない。 ファイルの読み込みが出来てなかったので、Chrome…

Chrome拡張(2)特定のページで実行されるプログラム

Googleのサイトでのみ実行される機能拡張を考える。manifest.jsonでコンテンツスクリプトとして定義する。 manifest.json { "name" : "Google Extension", "version" : "0.1", "manifest_version" : 2, "description" : "site specific extension works in g…

はじめてのChrome拡張 / Creating Google Chrome Extensions : Chapter 1

書籍「Creating Google Chrome Extensions」を買ってChrome拡張の開発をやってみることにした。最初のChrome拡張作成をやった。カレンダーと時刻機能。 書籍は統合された情報が掲載されていて余計なこと書かれてないので、それだけ取り組みたいときは効率が…

Mod:Processingで複数のスケッチ(というかプログラム)を1つのスケッチで実行する

Processingで複数のスケッチ(というかプログラム)を1つのスケッチで実行する方法について。以下のTumblrの記事で紹介されていた。 http://jtoprocessing.tumblr.com/post/38867546415/a-way-to-switch-among-multiple-processing-sketchesjtoprocessing.tu…

リバースエンジニアリング

Solar Flare - OpenProcessing OpenProcessingでフィーチャーされている作品で実行されている画面だけを見て、コードを見ないで書いてみた。ブレンドモードを効かせたかったのでp5.jsで書いた。 答え合わせでコードを比較すると、ちょっとずつ大きくするとき…

極座標で10print

Twitterのタイムラインに#10print で面白い画像が流れてきたので、遡って見ながら頭のなかでどう書くのか考えたりしていた。 twitter.com その中の一つで、極座標(原点からの距離rと角度theta)をつかって円周上の点をプロットしながら描いていくものがあっ…

Raspberry Pi 3で起動時にProcessingを自動実行する

Processingを使ったインタラクティブな作品を展示する際に安価なRaspberry Piは実行環境として向いていると思ったので調べてみた。結論から言うと自動実行出来るので、実行速度の問題はあるにせよ、使えそう。 Raspberry Pi 3へのProcessingのインストール R…

Mod:Coding Challenge #28: Metaballs

いわゆるメタボール。後半Computer Visionを使うパートになっていくんだけどいまいち理解できてないので、CVのチュートリアルを明日以降やって戻ってきたいと思う。OpenProcessingに載せてみたが重くて1fpsくらいでしか動かなかった。 コード int num = 8; A…

Mod: Coding Challenge #27: Fireworks!(2D+3D)

Processingの花火のシミュレータは夏に作ったけど、こちらのほうが爆発時や爆発後の処理が洗練されている。動画視聴しながら2D版を作って、3Dに移植している。 コード(3D) PVector gravity = new PVector(0, 0.1); ArrayList<ParticleSystem> particleSystem; // setup関数</particlesystem>…

Mod:Coding Challenge #76: 10PRINT in p5.js

しばらく古いものをやっていたが、昨日公開されたものが新着で出てきたのと、少し別のものもやってみようと思ったのでこれにした。書籍「10 PRINT CHR$(205.5+RND(1)); : GOTO 10」は、Commodore 64という1980年代のコンピュータのBASICというプログラム言語…

Mod:Coding Challenge #26: 3D Supershapes

スーパーシェイプの3D版。前回の続きを自分なりに書き換えていったが、展開がうまく言ってない気がするというか、登録する頂点と頂点の接続がうまくつながってない。 Supershapes / SuperFormula コード float a = 1; float b = 1; float m = 0.1; float fre…

Mod:Coding Challenge #25: Spherical Geometry

動画は見ていたけど、3Dで球体を計算するというものだったので、既知だったこともあり自分なりに書いてみた。結果見てみると随分書き方は違うけど、配列を使わないで動的に計算している自分のやり方はそれはそれで良いような気もする。2次元で書いた円の半径…

Mod:Coding Challenge #24: Perlin Noise Flow Field

p5.jsで書かれたものをProcessingに移植するときに、ArrayIndexOutOfBoundsExceptionが出てしまって解決する方法を考えて、随分書き換えた。グリッドに力場を作って、動くポイントに近い力場の影響を受ける。力場は2次元のパーリンノイズで動きの方向が変わ…

Mod:Coding Challenge #23: 2D Supershapes

これの続き。 takawo.hatenablog.com パラメーターが6つあるので、コントローラーをControlP5を使って制御してみた。 コード import controlP5.*; float n1; float n2; float n3; float m; float a; float b; float radius = 200; ControlP5 cp5; // setup関…

Mod:Coding Challenge #22: Julia Set in Processing

昨日のマンデルブロ集合とつながるジュリア集合。動画で書かれているコード写しながら動画内で参照されているリファレンスを読んだ。 Julia set fractal Julia set - Wikipedia マンデルブロ集合のコードを改変して一定の数値を与えると形が変わる、その加算…

Mod:Coding Challenge #21: Mandelbrot Set with p5.js

マンデルブロ集合。正直な所、昔からあんまり綺麗だなと思えなかったけど、漸化式の復習と考えたら面白く感じる部分もあった。関数mandelbrot()の中で繰り返し実行している。他のマンデルブロ集合をProcessingで記述する例を幾つかチェックして理解しながら…