3D manipulation 0.2

これまでの3D manipulationと重なる部分もあるかと思うが,
再考察.

  • 複数点での操作
  • 1点での操作

下記のいずれか

    • moving
    • rotation
  • 2点での操作
    • rotation(点方向の軸での回転):2点間の中点方向へのベクトルを回転軸とする.
    • expanding:2点間の距離に依存
  • 3点での操作
    • rotation (回転軸を2点で定義して残る1点で回転)
    • rotation (回転軸の傾きによる)
    • moving (回転軸の2点による移動もしくは残りの1点の点対称の点?)
    • expanding(回転軸となる2点の距離で定義か?)

慣性によるフリックコントロールはこれらを実装した後に行う予定.

3d 慣性スクロール

  • したいこと

3Dでフリック動作により3D物体をぬるぬる回転させる.

  • 取得されるデータ

カメラの取得頻度でのトラッキングされた点の3D位置(タグ付けなし)

  • 実装

これから.

  • 実装案

前回位置と今回の位置から移動量を算出.(100~300msec の間隔で設定する?)
これをエネルギーとして回転させる.
回転軸は外積

3D manipulation 0.3

3D manipulationを行う上で
物体の座標系と世界座標系で少し混乱してるのでメモ.

world座標系から見て
x -> y -> z という順の軸で回転をしようとする.

objectの座標系を回転するときには
glRotatefを
z -> y -> x の順で回転する必要がある.

[memo]3D manipulation idea 0.1

3点を用いて
moving
expand
rotating
を実現する.
2点の場合は今回は考えない.
1user 3points or 2user 3points.

1点を回転中心とし残りの2点の中点を結ぶ.
残りの2点の回転により,rotation
2点の距離によりexpand
3点の移動によりmoving

という感じか.
movingのときが怪しい.実装次第か.

opencv2.2 xcodeめも

xcodeopenCVを使おうとしていたのだが,
ターミナルからは動くプログラムがxcodeではビルドできず.
いちいちMakefileつくって,makeしないと動かないのかと思っていたら,
動いた.

opencvの*.dylibを追加する際に
既存のフレームワークを追加を選択したあとに出てくるopencv関連のdylibを追加するとビルドできないので,
(私はmacportsopenCVインスコしたので)
/opt/local/lib内のopencv * .dylibを追加することでビルドできる.

あとは,構成とかのオプションで,/opt/local/includeやら/opt/local/libを参照パスに追加.有効なアーキテクチャx86_64とi386にすることとかか.