TAG : experiment

ひらがなリッパー

[ソース表示] マウスジェスチャで適当なひらがなを書いてください。そのひらがなが切り取られます。ただし書き順に注意。 Palm Graffiti バージョン;Palm Graffiti Alphabet Ripper 技術解説エントリ;ActionScript で graffiti認識 と ひらがな認識

Movie data in one PNG image

[ソース表示] 3分40秒の動画データと音声データを圧縮して、465px 四方の1枚のグレースケール PNG 画像↓に収めてみました。バイナリデータのPNG画像への変換はconvert ByteArray to PNG imageとほぼ同じ方法を使用しています。このアルゴリズムは、SiON 内の org.si.utils.ByteArrayExt.toPNGData() メソッドで利用できます。 技術解説エントリ;ポケコンで Bad Apple !!

Real Time Ray Tracing

[ソース表示] レイトレースの中でも最も基本的な球面反射をリアルタイムでレンダリングします。200行弱の非常にシンプルな実装のため、移植性は高いと思います。 jsdo.it にはJavaScript version[Real Time Ray Tracing]も投稿しました。こちらはブラウザごとのNumberの扱いの違いなどに微妙に悩まされました。

パーフェクトシャッフルの成立条件

[ソース表示] 西尾泰和のはてなダイアリー「続: パーフェクトシャッフルは何回で元に戻るか」で、ビジュアライゼーションよりも成立条件と算出方法のほうが気になったので解いてみました。 (11))-((n&1)(n&1)回で元に戻る

Simple spectrum analyzer

[ソース表示] SiON FFT moduleとFlashPlayer10.1で導入されたマイク入力の取得機能を使って、声紋解析機を作りました。flash.media.Sound.computeSpectrum()では細かい解像度や解析窓の設定が行えないため、 SiON の高速フーリエ変換機能を使用し、時間分解能11ms(多分computeSpectrumの1/8)、Hamming窓による高周波ノイズの低減を行っています。

draw() と threshold() を用いたボロノイ図の生成

[ソース表示] flash.display.BitmapData の draw() と threshold() を使ってリアルタイムにボロノイ図を生成しました。元ネタはNao_u氏のjump floodingアルゴリズムを用いたボロノイ図の生成。 高速化バージョン

クラリネットメソッド

[ソース表示] bkzen氏の【問題】Graphics の drawCircle と drawRoundRect が壊れましたへの回答forkです。そのままでは面白くないので、Number、var、Math一式、代入/比較/乗除算、ループ関数を使わずに円を書いてみました。 概説; 加減算/シフト演算/3項演算子と再帰呼び出しのみを用いて、それぞれm()は乗算、d()は除算、s()は平方根を計算しています(除算は平方根の小数部を計算するためのもので、今回のように整数だけでよい場合は必要ありません)。 で、これらの3つの演算を用いてx=sqrt(y^2)を計算してrender()で円を塗りつぶしています。

意味が分からないw (゚д゚)

[ソース表示] (゚д゚) ソースを見ないと何が面白いのか意味が分らないですが、wonderfl上では文字化けしてるので、下にソースを載せました。fork元はpaq氏の意味が分からないwで、見ていたら何となく思いついたのでやってみました。

PuyoDot with lighting

[ソース表示] tail_yさんのPuyoDotのちょっとだけ改造版です。物理的な動きは元作品そのままで、各ドットをライティングしている点と、Flash10で追加されたdrawTriangle()を採用している点が改造した場所です。 ライティングは、36枚の光の角度を変えたドットパターンを生成しておき、テクスチャを差し替える形で対応しています。

Smoky text

[ソース表示] 煙のように文字が消えるエフェクトです。BlurフィルタとPerlinノイズを使っています。Flash BitmapData ApplyFilter を使った極めて典型的なデモです。