ホーム » スタッフ » 斉藤徹 » 2次元座標の平行移動・拡大・回転

2009年12月
« 11月   1月 »
 12345
6789101112
13141516171819
20212223242526
2728293031  

最近の投稿(電子情報)

アーカイブ

カテゴリー

2次元座標の平行移動・拡大・回転

GrWinを使ったグラフィックスの理解の第2ステップとして、座標の平行移動・拡大縮小・回転 について解説を行う。

// 平行移動       // 授業では行列表記も説明したけど、
X = x + x0 ;     // blogでmimetexを使って行列はつらい...
Y = y + y0 ;
// 拡大縮小
X = k * x ;
Y = k * y ;
// 回転
X = x cosθ - y sinθ ;
Y = x sinθ + y cosθ ;

これに加えて、これらの変換を1つの行列で表現するアフィン変換の式も示しておいた。

[ X ]   [ a11 a12 a13 ]   [ x ]
[ Y ] = [ a21 a22 a23 ] × [ y ]
[ 1 ]   [ a31 a32 a33 ]   [ 1 ]

また、このプログラムを書くにあたり、座標を構造体struct XY{ float x,y ; } で扱う場合や、 サイズ2の配列で扱う方法について説明し、変換用関数を作る際に、関数配列渡しや 構造体ポインタ渡しなどの違いを解説する。

グラフィックス2次元演習課題

ここまでの2次元の移動・拡大・回転をしていることが解るプログラムを作成し、 レポートとして作成する。授業後半で3次元グラフィックスの課題を出すことから、 レポートでは、プログラムリストと実行結果と簡単な説明でいい。

表示するための図は、関数グラフでもいいし、座標列を定数で与えた図形でも良い。