PR

【DXライブラリ】2D空間に図形を描画する

DXライブラリで2D空間に図形を描画する方法について説明しています。点、線、三角形、四角形、円、楕円が描画可能です。

関数の説明だけでサンプルコードはありません。たいした処理はしないので。

3D空間に図形を描画したい場合はこちら

2D空間に図形を描画したい

DXライブラリには図形を描画する関数が標準で用意されている。描画できる図形は以下の6つ。

  • 三角形
  • 四角形
  • 楕円

ゲームを作る場合、完成したときには不要になると思うが開発段階で当たり判定などを可視化して確認したいという場合に便利。

2D空間ではなく3D空間に図形を描画したい、という場合はこちらの記事にて

なお仕様上環境によってドット単位で描画にずれが生じるとのことなので厳密に描画したいという場合は注意。

図形描画関数

それでは2D空間での図形描画関数の説明。まずは点を描画する関数 DrawPixel()。

宣言 DrawPixel(int x, int y, unsigned int Color)
概要 点を描画する
引数 int x, y 点を描画する座標
unsigned int Color 描画する点の色
戻り値 0 成功
-1 エラー発生

線を描画する関数 DrawLine() / DrawLineAA()。AA付きはアンチエイリアス対応版。

宣言 DrawLine(int x1, int y1, int x2, int y2, unsigned int Color)
概要 線を描画する
引数 int x1, y1 描画する線の始点の座標
int x2, y2 描画する線の終点の座標
unsigned int Color 描画する線の色
戻り値 0 成功
-1 エラー発生

三角形を描画する関数 DrawTriangle() / DrawTriangleAA()。AA付きはアンチエイリアス対応版。

宣言 DrawTriangle(int x1, int y1, int x2, int y2, int x3, int y3, unsigned int Color, int FillFlag)
概要 三角形を描画する
引数 int x1, y1 描画する三角形の座標1
int x2, y2 描画する三角形の座標2
int x3, y3 描画する三角形の座標3
unsigned int Color 描画する三角形の色
int FillFlag 三角形を塗りつぶすか
TRUE:塗りつぶす FALSE:塗りつぶさない
戻り値 0 成功
-1 エラー発生

四角形を描画する関数 DrawBox() / DrawBoxAA()。AA付きはアンチエイリアス対応版。

宣言 DrawBox(int x1, int y1, int x2, int y2, unsigned int Color, int FillFlag)
概要 四角形を描画する
引数 int x1, y1 描画する四角形の左上の座標
int x2, y2 描画する四角形の右下+1の座標
unsigned int Color 描画する四角形の色
int FillFlag 四角形を塗りつぶすか
TRUE:塗りつぶす FALSE:塗りつぶさない
戻り値 0 成功
-1 エラー発生

円を描画する関数 DrawCircle() / DrawCircleAA()。AA付きはアンチエイリアス対応版。

宣言 DrawCircle(int x, int y, int r,unsigned int Color, int FillFlag)
概要 円を描画する
引数 int x, y 描画する円の中心座標
int r 描画する円の半径
unsigned int Color 描画する円の色
int FillFlag 円を塗りつぶすか
TRUE:塗りつぶす FALSE:塗りつぶさない
戻り値 0 成功
-1 エラー発生

楕円を描画する関数 DrawOval() / DrawOvalAA()。AA付きはアンチエイリアス対応版。

宣言 DrawOval(int x, int y, int rx, int ry, unsigned int Color, int FillFlag)
概要 楕円を描画する
引数 int x, y 描画する楕円の中心座標
int rx, ry 描画する楕円のX軸に対する半径とY軸に対する半径
unsigned int Color 描画する楕円の色
int FillFlag 楕円を塗りつぶすか
TRUE:塗りつぶす FALSE:塗りつぶさない
戻り値 0 成功
-1 エラー発生

どの関数も色を指定する場合は GetColor() を使って指定する。このunsigned int ColorだがHTMLコードコラーとは互換性がないとのことなので注意。

コメント

タイトルとURLをコピーしました