はじめに

COJTのエントリーの締め切りが今月の20日らしいので、 COJTのソフトウェアコースを受講しようと考えている人へ向けて何か書いてみようと思います。

Read more


今日は、近状報告ということで、今週の出来事を振り返ってみます。

Read more


今日は自然言語処理の期末試験でしたが、 昨日は筑波大学情報学群 組み込み技術キャンパスOJTのソフトウェアコースの成果発表会でした。

開発のお題は、Webブラウザで動作する3Dのカバンの商品カタログでした。

成果物はこれです。

Shelf

WebGLとHTML5で作っているので、WebGLの動くWebブラウザがあれば、Nexus7などのタブレットでも動作します。 (Androidでは、開発者用のChromeでchrome://flags/からWebGLを有効にする必要があります。)

細かい技術的な話はここでは置いておきますが、リポジトリは公開してます。

投票の結果、最優秀賞は逃したものの、なんだかんだで技術賞をいただきました。 一般参加者の評価も12人中2番目に良かったので、頑張った甲斐はあったというものです。

成果発表会に来てくださった方はありがとうございました。思ったよりたくさんの方に来てくださって正直驚きました。 講師の先生方、TAの方もありがとうございました。他の受講生は本当にお疲れ様でした。

振り返ってみると、開発に関してはいろいろと困難がありましたが、終わってみるとけっこう楽しかったです。(小並感)

春学期はブラウザ上で動かすこともあり、組み込みという感じはほとんどしませんでしたが、 秋学期は本格的に組み込みらしいので、期待してます。

Read more


最近、COJTという授業でWebGLとHTML5、JavaScriptなどを駆使して、3Dを使ったカバンの商品カタログのような物体を生成しています。 JavaScriptなどについて色々調べているので、有益そうなことをメモします。 とりあえず、動くようになったので、公開用のURLを晒しておきます。 COJT用の何か 実は、開発方法が色々とアレなのですが、ここでは深く言わないことにします。 JavaScriptそのものについて 私のようにクラスベースオブジェクト指向の言語から入った人間にとっては、 JavaScriptのプロトタイプベースオブジェクト指向はなかなか馴染みにくいものでした。 そういう人は、以下のサイトなどから、JavaScriptのOOPについて学習するのが良いと思います。 最強オブジェクト指向言語 JavaScript 再入門! slideshare JavaScriptでオブジェクト指向プログラミング @IT イーズ・アウト について COJT用の何かをみてもらえれば分かると思うのですが、棚の回転やパネルのポップアップの動きが 等速ではなく、動きの終わりに減速するようになっていると思います。 動きの終わりに減速する動きを「イーズ・アウト」と呼ぶそうです。 イーズ・アウトは重要で、フレーム数が限られた描画でも滑らかに動きに見せることができます。 ぶっちゃけ、COJTで学んだ一番のことと言うと、イーズ・アウトという単語を覚えたことな気がします。 イーズ・アウトの実現方法は色々とあると思いますが、私は次の関数で実装することにしました。 {% math%} f(t) = 1 - exp(-6t) {% endmath %} tは時間で、tを0〜1の間で変化させると、f(t)が良い感じにイーズアウトする物体の座標になります。 この式は、次のサイトから知りました。 指数関数を使ったお手軽イーズ・アウト spinrfの実装 JavaScriptには、spinrfがないので、自分で実装するか、誰かが作った実装を使う必要があります。 単純な用途なら、この実装で十分だと思いました。 連載:jQuery逆引きリファレンス:第5回 コア編 (11⁄13) @IT より // sprintf(‘{0}は{1}’, ‘猫’, ‘うろうろ’); => ‘猫はうろうろ’ sprintf = function(format) { // 第2引数以降を順に処理 for (var i = 1; i < arguments.length; i++) { // 正規表現でプレイスホルダと対応する引数の値を置換処理 var reg = new RegExp(’\{’ + (i - 1) + ‘\}‘, ‘g’); format = format.

Read more