icon 2010/03/17 Matrix3D -中心で回転させる-
オブジェクトを中心で回転させるプログラムに完全にハマりました(T_T)
とりあえず、このサイトのヘッダーメニューとBlog画面に実装しましています。

昔からベクトル大嫌い!
でも、3Dやるには切っても切れないから勉強しないと、この先思いやられるなぁ。

てか、中心の回転はFlex4で簡単にできるようになるんだっけ?(^^;)

とりあえず、サンプルコードを抜粋
  var matrix:Matrix3D = new Matrix3D();

  matrix.appendTranslation(-target.width/2, -target.height/2, 0);
  if (_params.rotationX > 0) {
      matrix.appendRotation(nRotationX, Vector3D.X_AXIS, new Vector3D(defaultX, defaultY));
  }
  if (_params.rotationY > 0) {
      matrix.appendRotation(nRotationY, Vector3D.Y_AXIS, new Vector3D(defaultX, defaultY));
  }
  matrix.appendTranslation(target.width/2, target.height/2, 0);
  target.transform.matrix3D = matrix;

オブジェクトを中心に回すには、基軸をオブジェクトの中心にずらさなくてはいけない。
肝は、pivotPointでした。

(1) appendTranslationでオブジェクトの幅、高さの半分平行移動

(2) appendRotationで各軸で回転させるが、第3引数のpivotPointで基軸を設定する

(3) appendTranslationで(1)で平行移動した分を戻す

このサイトについて

HTML5 & CSS3化しつつあるので、現在IEには対応してません。
できれば、Google Chromeやら Apple SafariのWebKit系をお勧めします。

DBからプログラムまで一応全て自作なので、バグってたらすいません。
実験でFlash版(Flex版)を先に作りましたが、ちょっと停止してます。

プロフィール

新宿近辺でSE & プログラマーしてます。
Webアプリの開発・設計とか、最近はiPhoneとか奮闘してます。
デザインはさっぱりです。

音楽は、昔からCubase打ち込み人間で、そっちの方が経歴は長いですが、最近はやる暇がないです。。。

今は、Gon's Privates ってバンドのキーボードやってます。
単発的に、なんちゃってジャズ系のライブもやってます。

名古屋生まれなのでドラゴンズ好きです。

Info && SNS

Gmail

 yohei.yoshikawa@gmail.com

Twitter

 http://twitter.com/yoo_yoo_yoo

あんまつぶやきませんが、一応技術系メインで使ってます。情報交換はこちらへ

FaceBook

 http://www.facebook.com/#!/profile.php?id=1439130626

海外の知り合いがいないので閑散としてます。

mixi

 http://mixi.jp/show_profile.pl?id=230072

音楽仲間とかはこっちメインでやってます。興味があればこちらへ