←3DSのHBL用アプリ開発 トップへ

図形を描画するライブラリ

簡単に図形を描画出来るライブラリを作りました。

最終更新:2017/10/12

初版:2017/09/24




はじめに


3DSの画面に図形を描画するライブラリを作りました。
これにより、ゲームなども作れると思います。

ダウンロード


GitHubに最新版があります。

ペイントツールのサンプル付き。(Ver1.1まで)
ダウンロード (2,945 bytes) [Ver 1.5]
・SetClipping関数でクリップ領域を指定できるようにした。(メモリの不正アクセスを防ぐ)。

●過去のバージョン
 ダウンロード (88,380 bytes) [Ver 1.1]
 ・DrawFrameの図形が閉じていないのを修正。

 ダウンロード (88,319 bytes) [Ver 1.0]

※解凍して出てきたファイルをソースフォルダにコピーしてください。

準備


まず、「draw.h」をインクルードします。
そして、SelectFrame関数の引数にgfxGetFramebuffer関数の返り値を指定します。

使い方


Draw〜系の関数で描画します。
描画する時の色を変えたい場合は、SetPenColor関数SetBrushColor関数で設定します。
※描画する種類によって使われる色(ペン or ブラシ)が変わります(後述)。

指定する座標は、左上が基準です。

SelectFrame関数:描画するフレームを指定


描画するフレームを指定します。
gfxGetFramebuffer関数の返り値を指定します。
メインループの最初の部分で毎回呼び出すことをお勧めします。
void SelectFrame(u8* pFrame //フレームへのポインタ
    );


SetClipping関数:クリッピング領域を設定(Ver1.5〜)


クリッピング領域を設定します。
メモリへの不正アクセスを防ぎます。
(初期値では0になっています。)
void SetClipping(int x1, //始点座標X
     int y1, //始点座標Y
     int x2, //終点座標X
     int y2 //終点座標Y
    );


SetPenColor関数/SetBrushColor関数:使う色を指定


使う色を指定します。
描画する種類によって使われる色(ペン or ブラシ)が変わります。
ペン・・・線を描画する系の関数。
ブラシ・・塗りつぶし系の関数。
void SetPenColor(unsigned char r, //赤の輝度(0〜255)
     unsigned char g, //緑の輝度(0〜255)
     unsigned char b //青の輝度(0〜255)
    );

void SetBrushColor(unsigned char r, //赤の輝度(0〜255)
     unsigned char g, //緑の輝度(0〜255)
     unsigned char b //青の輝度(0〜255)
    );

PenColor変数やBrushColor変数で直接設定取得することも出来ます。
PenColor[0] = 青の輝度(0〜255)
PenColor[1] = 緑の輝度(0〜255)
PenColor[2] = 赤の輝度(0〜255)

BrushColor[0] = 青の輝度(0〜255)
BrushColor[1] = 緑の輝度(0〜255)
BrushColor[2] = 赤の輝度(0〜255)


DrawDot関数:ドットを描画する


画面に点を打ちます。
ペンを使用。
void DrawDot(int x1, //点を打つX座標
     int y1 //点を打つY座標
    );


DrawLine関数:直線を描画する


直線を描画します。
ペンを使用。
void DrawLine(int x1, //始点座標X
     int y1, //始点座標Y
     int x2, //終点座標X
     int y2 //終点座標Y
    );

DrawLineExは第5引数に描画する色を指定することが出来ます。(0xRRGGBB)

DrawRect関数:塗りつぶし矩形を描画する


塗りつぶし矩形を描画します。
ブラシを使用。
void DrawRect(int x1, //始点座標X
     int y1, //始点座標Y
     int x2, //終点座標X
     int y2 //終点座標Y
    );


DrawFrame関数:枠だけの矩形を描画する


枠だけの矩形を描画します。
ペンを使用。
void DrawFrame(int x1, //始点座標X
     int y1, //始点座標Y
     int x2, //終点座標X
     int y2 //終点座標Y
    );


DrawCircle関数:円を描画する


円を描画します。
線はペンを使用、塗りつぶしはブラシを使用。
void DrawCircle(int x1, //始点座標X
     int y1, //始点座標Y
     int x2, //終点座標X
     int y2, //終点座標Y
     bool bPaint //塗りつぶすかどうか
    );





[前へ] [次へ]

(C)2017 InoueSoftware / 無断転載禁止