タグ

ブックマーク / tech.nitoyon.com (10)

  • クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた - てっく煮ブログ

    集合知プログラミング を読んでいたら、K-means 法(K平均法)の説明が出てきました。K-means 法はクラスタリングを行うための定番のアルゴリズムらしいです。存在は知っていたんだけどいまいちピンときていなかったので、動作を理解するためにサンプルを作ってみました。クリックすると1ステップずつ動かすことができます。クラスタの数や点の数を変更して、RESET を押すと好きなパラメータで試すことができます。こうやって1ステップずつ確認しながら動かしてみると、意外に単純な仕組みなのが実感できました。K-means 法とはK平均法 - Wikipedia に詳しく書いてあるけど、もうすこしザックリと書くとこんなイメージになります。各点にランダムにクラスタを割り当てるクラスタの重心を計算する。点のクラスタを、一番近い重心のクラスタに変更する変化がなければ終了。変化がある限りは 2. に戻る。これ

  • IE4 の青写真を懐かしむ - てっく煮ブログ

    Internet Explorer 4.0(以下、IE4)が登場したのは、10年以上前の1997年10月のこと。いま改めて IE4 の資料を調べてみたところ、当時の Microsoft が目指していたものが見えてきて面白かったので、ここに記しておく。Windows 95 + IE4生の Windows 95 に IE4 インストールすると、OS そのものの見た目が変わってしまったのが印象的だった。見た目だけでなく、エクスプローラの操作性が変わるなど、IE4 は Windows 95 SP1 といってもいいぐらいの位置づけだった。中でも目を引くのが、画面右側に登場する「チャンネル バー」だ。このチャンネル バーは、IE4 の目玉新機能のActive ChannelActive Desktopを象徴したツールとなっている。お気に入りを発展させた Active Channelまずは Active

  • AS3.0 で 3D プログラミングを1から勉強する (5) - テクスチャを張る - てっく煮ブログ

    as面を塗ることができたので、面に画像を貼り付けるのも簡単。画像を6つ用意して、立方体の上に貼り付けてみることにする。といっても前回までとほとんど変わらなくて、各頂点の 2D 上の座標を求めてから、画像を歪めて描画するだけでよい。問題は「どうやって画像を歪ませるか」という一点のみ。ActionScript 3 で画像を歪ませる方法ここからは完全に AS3 に限定したノウハウになる。答えは Graphics.beginBitmapFill() メソッドにある。 public function beginBitmapFill( bitmap:BitmapData, // 表示するビットマップ matrix:Matrix = null, // 変形方法を Matrix で指定 repeat:Boolean = true, // リピートするか smooth:Boolean = false //

  • AS3.0 で 3D プログラミングを1から勉強する (4) - 面に色を塗る - てっく煮ブログ

    asワイヤーフレームにも飽きてきたので、色を塗ることにしよう。面に色を塗ることを、3D 用語ではシェーディングと呼ぶらしい。今回はその中でもシンプルなフラットシェーディングという技法を取り上げる。といっても、ActionScriptによるWebの3Dグラフィックス再入門 (2) - シェーディングでもっと3Dらしく:CodeZine で解説されてる通りにコーディングしているので、詳しいことはそちらの記事に譲ろう。コーディング結果はこうなった。だいぶ嬉しい感じ。これで終わるのもさすがに寂しいので、ソースの全体の流れを説明しておこう。奥の立方体から描画するために並べ替える立方体の面についても奥の面から描画するために並べ替える各面の法線ベクトルを求める面の明るさを求める面を描画するそれぞれについて簡単にみていく。1. 奥の立方体から描画するために並べ替える面を塗るにあたっては、塗る順番が重要にな

  • AS3.0 で 3D プログラミングを1から勉強する (3) - 透視投影 - てっく煮ブログ

    as前回までのサンプルでは、遠くのものも近くのものも同じ大きさで表示していた。これでは立体感がでないので、遠くのものほど小さく表示するようにしたい。これを実現するには「投影」の方法を考えることになる。投影というのは、3D 上の点を 2D にマッピングすることを指す。今までは、Zの値を無視する方法を利用していたが、この手法には平行投影という名前がついている。それに対して、今回紹介するのが透視投影だ。遠くのものほど小さく表示できるので、遠近感を表現できる投影方法となっている。透視投影ってなあに?透視投影では「焦点」と「スクリーン」という概念が登場する。焦点は自分の目を表し、スクリーンは 3D の空間を投影する面である、と考えると分かりやすいだろう。スクリーンを窓として考えると、もっとすっきりするかもしれない。貴方は窓から外の景色をみている。窓の外の景色を、窓の上に見えた通りに描いていったとしよ

  • AS3.0 で 3D プログラミングを1から勉強する (2) - 行列の導入 - てっく煮ブログ

    asこのまま実装を進めていくとソースが複雑になりそうなので少し地盤を固めておこう。座標計算を簡潔にするために行列クラスを導入する。Matrix3D クラス前回は軸の周りの回転を公式 p.x = Math.cos(rad) * x + Math.sin(rad) * y; p.y = -Math.sin(rad) * x + Math.cos(rad) * y; を使って直接計算していたけど、ここを行列に置き換えてみる。ちょうど、3D ライブラリ FIVe3D 2.1 に Matrix3D クラスがあったのでこれを借用した。X軸周りに rad ラジアン回転する演算は次のように書けるようになる。 // 回転前の点 p1 を定義 var p1:Point3D = new Point3D(0, 10, 20); // rad ラジアン回転する行列を作成 var matrix:Matrix3D =

  • AS3.0 で 3D プログラミングを1から勉強する (1) - てっく煮ブログ

    as3D の原理をあまり知らなかったので、ActionScript 3.0 で1から勉強してみた。1からなのでフレームワークは使わず、自力で実装していく。Web 上には色んな資料があってありがたいだけど、玉石混交な上に、有用なものでも一道で幅の狭いものが多い。前提知識のない自分にとっては、資料間の関連性を理解するのが大変だった。なので、なるべく簡単なところからスタートしつつ、広く浅く体験していくことを目標としてみる。まずは、四面体をワイヤーフレームで表示するところからスタートしよう。四面体を定義するまずは、3次元上の点を表現する Point3D クラスを作る。 class Point3D { public var x:Number; public var y:Number; public var z:Number; public function Point3D(_x:Number =

    llcheesell
    llcheesell 2008/06/16
    Roxikのプレゼンと併せて参考にする http://temp.roxik.com/datas/max2007/index.html
  • すさまじく充実してる IT 勉強会カレンダー - てっく煮ブログ

    ここ最近、技術系の勉強会がものすごく多い印象がある。毎日どこかで誰かがやってるんじゃないの、と思ってたら、当にやっているらしい。これは id:hanazukin さんが Google カレンダーで運営中の IT 勉強会カレンダー。休日だけでなく、平日もぎっしり詰まっていて衝撃を受ける。例えば、今週土曜日は日全国で14個の勉強会が開催されるらしい。そんなにやってるのか!!勉強会名をクリックすると、場所と申し込みページが表示される。これはすごいといわざるをえない。あの勉強会の情報が載ってないよ!というのがあれば、id:hanazukin さんにメールすると記載してくれるみたい。伝えるときのガイドラインはIT勉強会カレンダーに情報を下さる方へを参照あれ。ただ、協力しようと思って探してみたけど、自分が知ってる勉強会は全部記載されていた…。すさまじい。ちなみに、新着の勉強会は こちらの RSS

  • Google Maps を Google Earth 風にする - てっく煮ブログ

    GoogleMapsAPI, asGoogle Earth 風のコントローラをつけてみた。傾かせるところは、例によって DisplacementMapFilter を使っている。にしても、DisplacementMapFilter は使いづらい。もう少し賢く振舞ってくれるラッパーがほしくなる。写像を定義する関数を渡すと、自動で BitmapData を作ってくれるようなやつ。誰か作ってないかな。ソースコードはいつもより少し長めの186行なんだけど、コントロールのソースコードを除いたらちょうど100行ぐらい。 package { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.filters.DisplacementMapFilter; import com.google.ma

  • 天才を変態に置き換えるブックマークレット - てっく煮ブログ

    JavaScriptソースコードjavascript:void(document.body.innerHTML = document.body.innerHTML.replace(/天才/gi,'変態'));利用方法はてなブックマーク - タグ 天才あたりからそれっぽい記事を拾ってきて、ブックマークレットを実行します。例:天才よばわり - shi3zの日記 → 変態よばわりライセンスPublic Domainネタ元誰かあのエントリの「天才」をそのまま「変態」に書き換えて投下する変態はいないものかTwitter / Yoshinori Munehara: 誰かあのエントリの「天才」をそのまま「変態」に書き換え...謝辞不謹慎とは思いつつ面白すぎるので公開してしまいました。反省はしていません。

    llcheesell
    llcheesell 2008/05/11
    変態的発想
  • 1