タグ

javascriptとalgorithmに関するloosecontrolのブックマーク (4)

  • ニテンイチリュウ : Image Evolution

    最初は、50個のポリゴンを重ねてモナリザを作ったよというRoger Alsing氏の記事だった。その発想と過程が非常に面白かった。 ソースコードが公開されるのを待っていたら、2日経って、同じことをjavascript+canvasで実装した別の人が登場! Image Evolution 200x200ピクセルまでのイメージをアップロードすると、canvasで描かれた半透明のポリゴンで描画してくれます。その過程が非常に面白い。 canvasのgetImageDataのブラウザ実装の関係で、Firefox3.0.4/Opera9.61/Webkit r39090でのみ動作。WebKitでの実行が超高速なため、WebKit推奨。Safari3.2.1では動作しません。 また描画中の状態をDNAという形でインポート/エクスポートすることも可能。 その発想と技術力に脱帽。 必見!

  • TOURISTIC:バネモデルによるグラフ描画をJavaScriptで

    2007年05月17日23:34 バネモデルによるグラフ描画をJavaScriptで カテゴリIT バネモデルによるグラブ描画をするJavaScriptライブラリを書きました。 サンプルはこちら http://sawamuland.com/graph/sample.html バネモデルの基は2つのノード(点)がつながれている場合、そこにバネがあるとして力(内向きまたは外向き)を計算し、 さらに自分とつながっていない全てのノードから距離に応じた斥力(反発する力)を受けるとして位置の移動を繰り返します。 つまり、つながれた2点が近すぎる場合は反発し、遠い場合は引き合い、つながれてない他の点からは等しくはなれようとするため多くのエッジ(線)を持つ集合が固まり、線が少ないノードはそこから離れて行きます。 この実装ではバネの力は log( ノード距離 / バネの長さ ) に適当な係数をかけて計算し

  • JavaScriptでジュリア集合を描画:Geekなぺーじ

    幅 : , 高さ : ジュリア集合解説 このスクリプトは、以下の数式を実行して色をつけていったものです。 この数式のzとAは実数部と虚数部を持つ複素数です。 Aは定数です。 平面上の各z_0に対して、この計算を繰り返し行っていきます。 この計算を行った結果が特定の値を超えた場合、その計算が発散したとします。 そして、発散するまでにかかった回数で平面上に色をつけていきます。 規定の回数まで行っても発散しない場合は、発散しなかったとして色を塗りません。 (ただし、今回のプログラムでは黒を塗っています。) 実数部の開始位置と終了位置を調整すると、画像全体のズーム率を調整できます。 定数Aの値を変更していくと、模様が変わります。 色々試して見てください。 何を入れていいのか解らない場合などには、以下の値などがお勧めです。 実数 -0.5 ~ 0.5、虚数 -0.5 ~ 0.5、A実数 -0.2、A

  • 最速インターフェース研究会 :: 実践JavaScriptで配列をシャッフルする方法リファクタリング

    JavaScriptで配列をシャッフルする話を見て、そういえばArray#shuffleは以前書いた記憶があるなーと思って調べてみたらコピペだった。 http://www.fumiononaka.com/TechNotes/Flash/FN0212002.html Fisher-Yatesというアルゴリズムだそうです。 Array.prototype.shuffle = function() { var i = this.length; while(i){ var j = Math.floor(Math.random()*i); var t = this[--i]; this[i] = this[j]; this[j] = t; } return this; } a = [1,2,3,4,5]; a.shuffle() // 3,1,5,2,4 a // 3,1,5,2,4 ごく普通に実装

  • 1