2012年11月10日土曜日

TitaniumでViewをDragする

この記事を参考に、動くように改良。


e.x, e.yで取れるのはviewからの相対的な位置のようなので、最初にtouchした時点の位置を覚えておき差分を動かすように修正。

2012年2月9日木曜日

Titaniumでスクロール目盛により参照を切り替えるUI

Titanium mobileでWeightbotのような横スクロール目盛を作ってみた。

主な機能
  • スクロールラベルの区切りで参照するデータを切り替える
  • 目盛の矢印がスクロールラベルの丁度真ん中に来るようにする

2番目の機能を実現するロジック
  • 貫性でスクロール中に速度が落ちたらちょうど真ん中に自動スクロール
  • 指を離して少し経っても動いていなかったらちょうど真ん中に自動スクロール

Titanium mobile SDK 1.8から"dragEnd"イベントが拾えるようになりやっと実現できました。

パラメータは感覚で適当に決めました。

ご意見、アドバイスいただけたら嬉しいです。






2012年2月8日水曜日

負にならないようにノイズをかける

気づくと1ヶ月未更新。

マメに更新するのは難しいなぁ。


小さなことからコツコツと、今日は実際に使った乱数の作り方をメモ。

「ある値にノイズをかけたいがマイナス値にはしたくない」という場合。


(追記:2012/02/08)整数ノイズになります。正しくは「整数のノイズをかける」ですね。



var gap = 3; // ノイズの間隔は±3にする

// 元の値は1~10で実験
for(var n = 1; n < 10; n++) {
 
 // 各20回実行
 for(var i = 0; i < 20; i++) { 
  
  // これだとノイズは最小でも-nにしかならない
     var noise = Math.round(Math.random() * (gap + n) - n);
     
     var a = n + noise;
     
     console.log("n:" + n + " a:" + a);
    }

    console.log("*****************");
}



2012年1月8日日曜日

localでWeb開発するときに外部端末でテストする方法

MacならIPアドレスではなく"コンピューター名.local"でローカルサーバーにアクセスできる。

コンピューター名は[システム環境設定]>>[共有]の一番上のところで編集できる。

アクセスする端末は同一のネットワークに繋いでいないといけない。同じ無線LANにつなぐか、[システム環境設定]>>[共有]のインターネット共有でつなぐと良い。

あとはローカルサーバーを起動してブラウザから"http://コンピュータ名.local/パス"を開けば外部PCやスマートフォンでテストできる。




2011年12月7日水曜日

thisによりオブジェクト自身を参照するときの注意点

@dankogaiさんが書かれた怠翻 - JavaScriptでありがちな9つのシマッタ のthisのくだりが参考になったので忘れないようメモ。

オブジェクト自身に紐づいた子オブジェクトをthis.~~で定義し、それをさらに別の子オブジェクトの中で呼び出すとundefinedになってしまう。var selfにthisを代入することで、別の子オブジェクトの中でも呼び出すことが可能になるとな。




2011年12月5日月曜日

JavaScriptの等価演算子(==)と厳密等価演算子(===)の違い

"=="は型を自動変換して比較してくれるので便利だが、型も含めて厳密に比較したい場合は"==="を使う。




2011年12月3日土曜日

OpenCVをMacOSX(Lion)にHomebrewでインストールしてXcode4で実行するまで

Lionの環境にOpenCVを入れる。

OSXバージョン:10.7.2
Homebrewバージョン:0.8

参考サイト:HomebrewとXcode4でつくるOpenCVの環境


インストール


まずはHomebrewでOpenCVをインストール。

%brew install opencv


無事インストール完了。以下のディレクトリにインストールされた。

/usr/local/Cellar/opencv


Xcode4でサンプルを実行


新規プロジェクトを[Apprications]>>[Command Line Tool]で作成。

サンプルコードはopencv.jpからビデオ入出力のサンプルコードをmain.cにコピペする。

実行するとヘッダーファイルcv.hが見つからないとエラーがでる。

Xcodeの左側のProject navigatorで、プロジェクトファイルを選択するとビルド関連の設定が行える画面になる。

ヘッダーのパスを指定するのは[Build Setting]タブ>>[Search Path]グループ>>[Header Search Paths]。ヘッダファイルがインストールされている以下を設定する。

/usr/local/Cellar/opencv ※Recursiveにチェックをつける

実行すると今度は、リンクエラーが起きる。OpenCVのライブラリとのリンク設定を[Build Phases]タブで行う。[Link Binary With Libraries]に実行に必要なライブラリを登録する。今回は

libopencv_highgui.dylib

だけで大丈夫。実行成功。サンプルアプリの終了は[ESC]。