図のように物理座標系Rからディスプレイ座標系Gに成分を変換する関数マクロ
gx(),gy()を作成し、R上の座標で与えられた線分を画面に表示して下さい。但
し、座標系Rは実数で、座標系Gは整数で表され、Rの原点のG上での座標を
(ORIGIN_X, ORIGIN_Y)
、R上の長さ REAL_SIZE(m)
はG上で DISPLAY_SIZE(dot)
で表されるものとする。
-----------------------/* "ex4-1.c" --- */ #include <stdio.h> #include <Xtc.h> #define ORIGIN_X 320 #define ORIGIN_Y 200 #define REAL_SIZE 1.0 #define DISPLAY_SIZE 150 /* 座標変換 */ #define gx(x) ((int)(ORIGIN_X+(x)*DISPLAY_SIZE/REAL_SIZE)) #define gy(y) ((int)(ORIGIN_Y-(y)*DISPLAY_SIZE/REAL_SIZE)) int main(void) { int x,y; initgraph(); /* グラフィックス環境の初期化 */ setcolor( WHITE ); /* 座標軸の表示色設定 */ line( gx(0.0), gy(0.0), gx(1.0), gy(0.0) ); /* x軸の描画 */ line( gx(0.0), gy(0.0), gx(0.0), gy(1.0) ); /* y軸の描画 */ outtextxy( gx(0.0) - 20, gy(0.0) + 20, "0" ); /* 原点表示 */ setcolor( RED ); line( gx(0.0), gy(0.0), gx(0.2), gy(0.5) ); /* 線分の描画 */ xtcmainloop( 3 ); /* 終了入力待ち */ closegraph(); /* グラフィックス環境の終了 */ }-----------------------