3 座標系

3.1 座標系について

コンピューターを使って,図を描く場合,以下に示す2つの座標系を区別しなくてはなら ない.
ワールド座標系(world coordinate)

ユーザーが勝手に決めることができ,プログラムを記述するときの座標系で ある.プログラマーの好きな単位; [ $ \mathrm{mm}$]でも[ $ \mathrm{km}$]でも図形を描く ことができる.オブジェクト座標系(object coodinates)と呼ばれることも ある.
ウィンドウ座標系(window coordinate)

ディスプレイ上の座標系で,実際に表示するときに使う.この座標系の単 位は,ピクセル(pixel)3となる.
先週使ったプログラムでは,glVertex2d(GLdouble x, GLdouble y);を使って頂点 の座標を指定した.このときの座標系がワールド座標系である.GLdoubleはOpenGL の型で,通常のdoubleと同じと考えて良い.

図をディスプレイ上に描く場合,ワールド座標系の作図範囲をしてしなくてはならない. その指定には,次の命令を使う.

void gluOrtho2D(GLdouble left, GLdouble right, GLdouble buttom, GLdouble top)

leftrightbuttomtopは,ディスプレイに描くワール ド座標系の四角形領域を指定している(図1参照).

つぎに,ワールド座標系とディスプレイに表示されているウインドウとの位置関係を指定 する必要がある.次の命令を使う.

void glViewport(GLint x, GLint y, GLint w, GLint h)

xyはウィンドウに描くワールド座標系の左下の位置,whはサイズを表している(図1 参照).いずれも, 単位はピクセルである.

図 1: ワールド座標系とウィンドウ座標系の関係.
\includegraphics[keepaspectratio, scale=1.0]{figure/coordinate.eps}

3.2 ウィンドウの初期値

ウィンドウを作成するときに,位置とサイズを指定することができる.そのためには,以 下の命令を使う.
void glutInitWindowPosition(int x, int y)

glCreatWindow()で作成したウィンドウの初期位置を指定する.ウィン ドウの左上の座標を指定する.この場合,ディスプレイの座標は左上が (0,0)で,右に行くに従いx座標は大きくなり,下に行くに従いy座標は大き くなる.単位は,ピクセル.

void glutInitWindowSize(int width, int height)

glCreatWindow()で作成したウィンドウの初期サイズを指定する. widthが幅で,heightが高さである.単位は,ピクセル.



ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成19年11月21日


no counter