ボロノイ図
fitcでのマリオ・クリンゲマンさん(Quasimondo)のセッションで、
「そうそう、こういうことがやりたくて
こっちの世界に移ってきたんだよ!」
とものすごく刺激を受けてきました。
よし、この感動を忘れないよう、
マリオさんについていろいろ調べてまとめるかー
と思ってみたものの、まだ日本語での記事はあまりなく、
http://pingmag.jp/J/2007/07/23/fitc-flashy-islands/
本家のブログをがんばって読んでみるかー
と思った見たものの、びっしり書かれた英語にひるみ、
http://www.quasimondo.com/
とりあえずいろいろ使いまわせそうな「ボロノイ図」
http://ja.wikipedia.org/wiki/ボロノイ図
のサンプルでも作ろう、というところに落ち着きました。
で、こちらの記事のアルゴリズムの解説がわかりやすかったです。
http://d.hatena.ne.jp/rsakane/20090331/voronoi_diagram
- 適当な位置に点を置く(配列に全ての点の座標x,yを保持しておく)
- あるピクセルに注目して、そのピクセルと上で打った点の中で一番近いのを探す。
- その一番近い点の位置にある色を取得して、注目したピクセルに代入する。
- あとは、他の全ピクセルに同じように処理させるだけ。
#ボロノイ図って必ずしも「不規則な形で領域分割するための方法」てわけじゃないんですね
(最初に打つ点の位置関係によっては規則的な領域分割にもなりうる)
で、wonderfulにソースコードもありました。
http://wonderfl.net/code/870ff8531447e24f8bae52ace1bbda4c92b16049
こちらのソースでは、
- 100個の点を置く。各点は座標と速度を個別に保持。初期座標と速度は乱数で決定。
- 各点の座標を速度に応じて動かす
- 境界線の視点座標と終点座標を求める処理(ちゃんと解読してないけど、たぶん2点を結ぶ線分の二等分線の式を求めて、交点を求めたり云々してる)
- 境界線を描画
つまり、このクラスは「ボロノイで領域の境界線を引く」
というもののようです。
自分は「ビットマップをボロノイで領域分割」という使い方をしたいので、
コアな処理は自分で書く必要がありそう。
ちょっと今からつくってみようと思います。
iPhoneアプリからTwitterAPIを利用する方法
開発中のアプリでコンテンツをサーバから取得する機能が必要なのですが、
サーバ側の開発が進んでいないようなので、
とりあえずTwitterAPIで練習しておこうと思います。
まず、手元にある本の、ネットワーク関連の解説を調べてみました。
- 『基礎からのiPhoneSDK』UIWebViewを用いたブラウジングの解説
- 『iPhoneSDKアプリケーション開発ガイド』(オライリーのやつね)CFNetworkを用いたネットワークプログラミング。主にソケットの話。UIWebViewのページではGoogle検索ユーティリティのサンプルも。
- 『iPhoneSDK Programming Manual』XML解析の解説とサンプルあり。
- 『ライトウェイト・プログラマのためのiPhoneアプリ開発ガイド』GoogleMapsを利用したアプリ、RSSリーダーアプリのサンプルあり。
- 『iPhoneSDK3プログラミング大全』UIWebViewの解説。NSXMLParserクラスは簡単な紹介のみ。
- 『iPhoneデベロッパーズクックブック』XML解析の解説あり。
というわけで、XML解析の解説とサンプルがある
『iPhoneSDK Programming Manual』
『ライトウェイト・プログラマのためのiPhoneアプリ開発ガイド』
『iPhoneデベロッパーズクックブック』
を参考に進めていこうと思います。
大まかな流れ
さらっと読んだ感じだと、
NSXMLParserオブジェクトのinitWithContentURLメソッドに
NSURLオブジェクト使ってURL渡してやるだけでXML取得もやってくれるっぽい。
(つまり、AS3みたいにLoaderとか不要)
簡単そう。
でも、FITCが始まってるので、
帰ってきて体力あったら続きやります。
活動記録(10/24〜11/7)
自分がどれぐらいの時間をかけて何を生み出し、
どれだけ成長したのかをきちんと把握するために、
web関連での活動履歴を記録していこうと思います。
10/24(土)
10/25(日)
- いきなり風邪を引いて発熱。会社辞めて得た時間で寝込むのはバカらしいので全力で療養する。
- 夜にはほぼ回復し、iPhoneアプリ開発に着手。Tabの各ビューにTableViewを実装し、各セルに画像とテキストを入れ込むところまで。
10/26(月)
- フラワースクールFlash案件の修正。png画像の透過はFlashにインポートすると無効になることがわかった。(ということはFlash素材はベクターデータでもらう以外の方法はないのかなぁ・・・?)
- メールフォームPHP案件でサーバー情報の連絡がやっとくる
- ついでにケータイ位置情報を使ったFlash案件の話も出る。もちろん二つ返事で受ける。ただケータイFlashでGPS情報を取得する方法がよくわからない・・・(11/7現在、まだわかりません)
- で、そのもらったサーバー情報がまた間違っていてFTP接続不可。再度問い合わせ
- マスメディアン紹介企業の面接。恵比寿のオシャレなオフィス。代表の方は丁寧でいい感じ。でも案件単位で仕事をもらうには実績がないと無理そう
10/27(火)
- フラワースクールFlash案件の修正。この日やっとtweenerで"easeIn"や"easeInOut"という設定名は存在しないことに気づく
- 同じくフラワースクールの資料請求フォームPHPを作成。初めてCSSもやってみる(タグや数字で見た目を調整する作業はあんま楽しくないなー)
- メールフォーム案件のサーバー情報連絡が来る。今度は接続OK。動作確認して納品
- マスメディアン紹介企業の面接第2弾。クリエイターとしてのレベルは高そうで、一緒に仕事できたら勉強になるだろうなぁとは感じた。ただやっぱり正社員になる気は今のところないし、案件単位での仕事をもらうには実績が足りない。ここでやっと、中途半端な就職活動はやめて、今はまず実績づくり(制作)に黙々と励むべきだと気づく
- 天気オルゴール制作。何をやったかまでは失念
10/28(水)
10/29(木)
- 仕事とコンテスト応募作品のための時間が足りず、前職の人と会う予定を平謝りでドタキャン
- 天気オルゴール制作。雪のときの音色を延々とネットで探したり、soundboothでエフェクトかけたり(いまの僕のやり方だと、音楽生成とかのコアな部分よりも、素材探しや素材の補正に一番時間がかかる)
10/30(金)
10/31(土)
11/1(日)
- iPhoneアプリ開発。動画再生に成功。実機テストの準備を開始。
- フラワースクール案件、ボタンがカレンダーの各セルにあるのはいやだということで、cosaicさんにお聞きしたjavascriptのsubmitメソッドを使う方法で対応
- CS4インストール
11/2(月)
11/3(火)
- 企画リスト精査の続き
- とある写真加工アルゴリズムを思いつき、AS3で実装してみる。2時間ほどでコアなところは完成
11/4(水)
- 妻の誕生日なので制作はお休み
11/5(木)
11/6(金)
- iPhone依頼元の会社で打ち合わせ。まだモックと呼べる状態でもなかったので、進みが遅いとか苦言を呈されないか不安だったが、そういうのは一切なかった。今後の予定、進め方など。ちゃんとデザイナーがついて素材を提供していただけるとのこと。iphoneアプリ関連書籍を2冊借りて帰る
- フラワースクールに赴いて問題のPCで修正。chrome入れて確認したら問題なかったのでie6のせいだと断定。trのところで指定してるborder指定が効いておらず、tdのほうは効いているようなので、指定をtdの方に移し替えたらうまくいった。trに対してborder指定するのはダメなの?
- クリックしてもページ遷移しない問題は、a href="javascsript:void(0);"としていたところを、a href="#" としたら動くようになった
- 作成したフォームをページに組み込むところまで僕がやることになった。
11/7(土)
- 京都時代の友人が東京に来ていたので新宿で会う。その友人の会社が運営しているサイト用のアンケートFlashの超ざっくり版をその場で作成する
- 家に帰ってからは制作やらず。
やばい、これすごい時間かかるなー
でもこうして振り返ることで、
いかにちょっとした用事の積み重ねで
制作時間が削り取られていくか、よく把握できました。
もっともっと時間の使い方を研ぎ澄まさないと。
明日(11/8)はクスールに行って授業のお手伝いをやるのですが、
移動だけで片道1時間半かかるので、
11時半ぐらいに家を出て、帰ると21時になります。
これはもう、ちゃんと自分のPC持ってって開発やりながらじゃないと・・・
Mashup Awards 5 と 天気予報API活用アプリコンテストに応募しました
天気予報APIを使ってるので、
ひとつの作品でふたつのアワードに応募できました。
(作品概要)
天気予報APIを使用して取得した週間天気予報より、
オルゴールのように美しいメロディを生成します。
(作品URL)
http://223.sitemix.jp/wp-content/uploads/2009/10/weathermusic.html
※1 わりと繊細な音なので、ヘッドホンなどで聴いていただけると嬉しいです
※2 処理が重いです。最適化は相当がんばったのですが・・・
11/4までは修正できると思うので、
こうした方がいいよ、とかバグ発見!とか
ぜひアドバイスいただければと思います。
独立日記 1日目
今日は初の「非」出社日!
いきなり風邪引いて調子悪いです・・・
今日やること
以前書いた人材紹介会社の紹介で、
とあるWeb制作会社の面接を受けにいきます。
(Flashデベロッパー枠)
で、今悩んでいるのが、
「どんなスタンスで面接に臨めばいいのか?」
ということ。
その会社はファッション系に強いようで、
制作実績を見ると非常に洗練されていて、
おしゃれでかっこいいものが多いのですが、
僕は、
・アイデアとしておもしろいもの
・技術的におもしろいもの
をやりたいんであって、
ファッション系にはあまり興味がないわけです。
とはいってもデザインは重要だと思っているので、
そういった視点や技術はぜひとも学びたい。
・・・ごちゃごちゃ書きましたが、諸々考慮すると、
「入社の意志は今のところないですが、
案件単位でのお付き合いができると嬉しいです」
このスタンスで "前向きに" アピールして、
現場でやってきた方の生きたアドバイスをもらう、
これを今日の目標にすることにします。
(入社しないと人材紹介会社にはお金が入らないので、
実際に案件まわしてもらうのは無理そうだけど)