HandyGraphic 基本関数一覧

HandyGraphicのごく基本的な関数のリファレンスです。詳しい説明やここに書いていない関数についてはユーザーズガイドを見てください。

返値について、特に書いてないものは0:正常、-1:異常。これらの返値は通常意識しなくてもよいです。

ウィンドウ

int HgOpen(double w, double h)
引数: w,h: 幅と高さ

引数で指定した大きさのウィンドウを開く。HandyGraphicで絵を描くには、まず最初にウィンドウを開かなければならない。ウィンドウを開く前に描画関数を呼んでも何も描かれないことに注意。

int HgClose()
引数: なし

ウィンドウを閉じる。開いたウィンドウは不必要になったら(プログラムを終了する際に)必ず閉じること(無限ループのため強制終了させるしかないプログラムの場合は仕方ないのだが)。

int HgClear()
引数: なし

ウィンドウ内に描かれた図形や文字を消去する。

図形の描画(塗りつぶしなし)

int HgLine(double x0, double y0, double x1, double y1)
引数: x0,y0:線分の始点 x1,y1:線分の終点

線分を描く。

int HgBox(double x, double y, double w, double h)
引数: x,y:左下隅の座標 w,h:幅と高さ

長方形を描く。座標と大きさの与え方に注意。HgRect関数も長方形を描くが引数の個数と意味が異なっている。

int HgCircle(double x, double y, double r)
引数: x,y:円の中心 r:半径

円を描く。

int HgArc(double x, double y, double r, double a0, double a1)
引数: x,y:円の中心 r:半径 a0:始点角度(ラジアン) a1:終点角度(ラジアン)

円弧を描く。角度はラジアンであることに注意。180°がラジアンではπであるから、x度ならx*π/180でラジアン単位に変換できる。扇形を描くHgFan関数もある。

図形の描画(塗りつぶしあり)

図形を描く関数名の最後にFillを付けると塗りつぶして描画する関数となる。縁を描くかどうかを指定する引数が追加される。

int HgBoxFill(double x, double y, double w, double h, int stroke)
引数: x,y:左下隅の座標 w,h:幅と高さ stroke:周囲を描くかどうか(0:描かない, 0以外:描く)

塗りつぶし長方形を描く。

int HgCircleFill(double x, double y, double r, int stroke)
引数: x,y:円の中心 r:半径 stroke:周囲を描くかどうか(0:描かない, 0以外:描く)

塗りつぶし円を描く。

int HgFan(double x, double y, double r, double a0, double a1, int stroke)
引数: x,y:円の中心 r:半径 a0:始点角度(ラジアン) a1:終点角度(ラジアン) stroke:周囲を描くかどうか(0:描かない, 0以外:描く)

塗りつぶしの扇形を描く。

線の太さ、色の設定

線の太さや色など(描画属性と呼ぶ)は、図形を描く前に設定すること。一度設定された描画属性は変更するまで有効となる。指定していない場合はHandyGraphicの初期状態の描画属性となる。

int HgSetWidth(double t)
引数: t:線の太さ(ピクセル単位)

線の太さを指定する。

HgSetColor(hgcolor clr)
引数: clr:色

図形の線の色を指定する。色の指定は下記参照。なお、hgcolor型はHandyGraphicで定義している数値型であり一般的ではないことに注意。

HgSetFillColor(hgcolor clr)
引数: clr:色

図形の塗りつぶしの色を指定する。色の指定は下記参照。

色は、次の20種類が定義されている。マクロ名とかかれている大文字と_(アンダースコア)の文字列を引数として与えればよい。

マクロ名 マクロ名 マクロ名 マクロ名
HG_WHITE HG_RED シアン HG_CYAN 空色 HG_SKYBLUE
HG_BLACK HG_GREEN オレンジ HG_ORANGE 濃赤色 HG_DRED
灰色 HG_GRAY HG_BLUE ピンク HG_PINK 濃緑色 HG_DGREEN
淡灰色 HG_LGRAY HG_YELLOW マゼンタ HG_MAGENTA 濃靑色 HG_DBLUE
濃灰色 HG_DGRAY HG_PURPLE HG_BROWN 透明※ HG_CLEAR

※透明色の使い方についてはユーザーズガイド9.9節に書いてある。少々難しい。

表にない色を使いたい場合はHgGray関数やHgRGB関数で色を作ることができる。詳しくは説明書を見よ。

文字

int HgText(double x, double y, const char *str, ...)
引数: x,y:左下隅の座標 str:書式文字列(printf関数と同様の指定が可能、変数の値の埋め込みもできる)

文字列を描く

int HgSetFont(hgfont font, double size)
引数: font:フォントを指定する定数 size:文字サイズ

文字列を描くフォント(字体)と大きさを指定する。描画属性と同様、一旦指定した属性は再度指定するまで有効となる。

フォント 細字体 斜体(Italic) 太字体(Bold) 太字斜体
Times HG_T HG_TI HG_TB HG_TBI
Helvetica HG_H HG_HI HG_HB HG_HBI
Courier HG_C HG_CI HG_CB HG_CBI
明朝 HG_M HG_MB
ゴシック HG_G HG_GB

イベント

イベントとは、キーボードやマウスの操作、タイマー処理などのこと。

int HgGetChar()
引数: なし
返値: 0以上: 入力された文字のコード, -1: 異常

文字の入力を待つ。入力されるまで待ち続けることに注意。どの文字が入力されたかは、文字コードの整数値と比較すればよい。C言語の場合'a'のように1文字を'で囲む記述方法も使える(教科書p.31)。

void HgSleep(double sec)
引数: sec: 時間(秒)
返値: なし

プログラムを実行を指定した時間だけ停止する。引数は小数も可。例えば0.05なら0.05秒=50msecだけ停止する。