fc2ブログ

三次元変換行列(8)

2008/05/13 21:35 - AS3.0



拡大縮小(scale)

  単位行列     平行移動
| 1  0  0  0 |  | sx  0   0   0 |
| 0  1  0  0 |  | 0   sy  0   0 |
| 0  0  1  0 |  | 0   0   sz  0 |
| 0  0  0  1 |  | 0   0   0   1 |

| na  nb  nc  ntx |   | sx  0   0   0 |   | a  b  c  tx |
| nd  ne  nf  nty | = | 0   sy  0   0 | * | d  e  f  ty |
| ng  nh  ni  ntz |   | 0   0   sz  0 |   | g  h  i  tz |
| 0   0   0   1   |   | 0   0   0   1 |   | 0  0  0  1  |

↓

na  = sx*a  + 0*d  + 0*g  + 0*0;
nb  = sx*b  + 0*e  + 0*h  + 0*0;
nc  = sx*c  + 0*f  + 0*i  + 0*0;
ntx = sx*tx + 0*ty + 0*tz + 0*1;

nd  = 0*a  + sy*d  + 0*g  + 0*0;
ne  = 0*b  + sy*e  + 0*h  + 0*0;
nf  = 0*c  + sy*h  + 0*i  + 0*0;
nty = 0*tx + sy*ty + 0*tz + 0*1;

ng  = 0*a  + 0*d  + sz*g  + 0*0;
nh  = 0*b  + 0*e  + sz*h  + 0*0;
ni  = 0*c  + 0*f  + sz*i  + 0*0;
ntz = 0*tx + 0*ty + sz*tz + 0*1;

↓

na  = sx * a;
nb  = sx * b;
nc  = sx * c;
ntx = sx * tx;

nd  = sy * d;
ne  = sy * e;
nf  = sy * f;
nty = sy * ty;

ng  = sz * g;
nh  = sz * h;
ni  = sz * i;
ntz = sz * tz;
/**
* 拡大縮小
* | sx  0   0   0 |
* | 0   sy  0   0 |
* | 0   0   sz  0 |
* | 0   0   0   1 |
*/
public function scale(
          sx:Number,
          sy:Number,
          sz:Number ):void {
 _a *= sx;  _b *= sx;  _c *= sx;  _tx *= sx;
 _d *= sy;  _e *= sy;  _f *= sy;  _ty *= sy;
 _g *= sz;  _h *= sz;  _i *= sz;  _tz *= sz;
}

にほんブログ村 IT技術ブログへ



スポンサーサイト




コメントの投稿

非公開コメント

タグクラウド

最近の記事
カテゴリ
月別アーカイブ
プロフィール

Aquioux

Author:Aquioux
日曜 Flash プログラマ。
Flash 作品は本館で展示しています。


mailto:aquioux@mail.goo.ne.jp

ブログパーツ

あわせて読みたい

フィードメーター - 閃光的網站・弛緩複合体 -Review Division-


検索/translation
Google



オススメ本

コメント
トラックバック
RSS

Add to Google

Bloglinesで閲読登録

はてなRSSに追加

Subscribe with livedoor Reader

My Yahoo!に追加

Add to Technorati Favorites!

feedpathに追加