情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作 グラフィックス • C言語には,グラフィックス表示 に関する機能は備わらない – コンピュータシステムの種類に依存 – いろいろなグラフィックス表示の形態がある • ビジネスソフトウェアの表示(数式やグラフなど) • 立体的な表示(3次元コンピュータグラフィックス) • ビデオ,アニメーションのような動画表示 など.これらに合わせてそれぞれ適した グラフィックス表示ライブラリを用いる. 情報処理演習では • “HandyGraphics” ライブラリを使用 – 単純,簡単 #include <stdio.h> #include <handy.h> •handy.h の include を忘れない •コンパイルオプションに -lhg を入れる int main (void) { int w; w = HgWOpen( 200.0, 150.0, 500.0, 400.0); HgInitEPS( w, “file.eps”); /* 絵を描く関数を呼び出す */ HgWClose (w); return 0; } HandyGraphics で使える関数 • 直線 : HgWLine() – 始点と終点の x, y 座標を指定 • 円 : HgWCircle() – 中心の x,y 座標と半径を指定 – 塗りつぶしあり : HgWCircleFill() • 四角形 : HgWBox() – 左下隅の座標と,幅,高さを指定 – 塗りつぶしあり : HgWBoxFill() • 文字列 : HgWText() – 文字を表示する場所の左下隅の座標と,文字列を指定 その他の関数 • HgWClear ( w ); 画面のクリア • HgColor(HgRGB (R, G, B)); 色の設定 • HgWWidth( w, t); 線の幅の指定 • など 曲線の表示 • 曲線を数値で表すことは難しい – 曲線は「折れ線」で表示 – 分割数を増やすと事実上曲線に見える • 例えば sin 曲線を書く場合 – y = sin(x) の x を変化させながら y の値を求める – 一つ前の座標から新しい座標までを直線で結ぶ sprintf() • printf () : 画面に文字を表示 – – 画面に出すにはいいが,計算機内での処理には不向き 例えば,数値に対応する文字列を得る場合 • • double の数値 123.4 5文字の文字列 “123.4” sprintf では画面に表示する代わりに文字列に結 果を入れることが出来る char str[100]; double a = 123.4; sprintf(str, “%f”, a); /* str には文字列 “123.4” が入る */ 多角形の描画 • 座標の配列を用いる double x[4] = {1.0, 2.0, 3.0, 2.0}; double y[4] = {2.0, 1.0, 2.0, 3.0}; HgWPolygon (w, 4, x, y); 図形の描き方 • 座標変換を駆使する 一次変換:拡大縮小,回転等 • 配列をうまく使う 同じような図形をたくさん描く,曲線を描くなど • 関数をうまく使う 座標の計算,座標変換,一定処理の繰り返しなど に関数をうまく使うとシンプルなプログラムになる
© Copyright 2024 ExpyDoc