ページ 11

図形描画関数

Posted: 2009年12月15日(火) 03:47
by 夏天
DXライブラリの図形描画関数に関しての質問なのですが
中をくりぬいた図形を描画するときに枠線が1ピクセルしかないのですが
コレの太さを変えることは可能ですか?

もしも出来ないのなら
どうすれば太い中抜きの画像を書くことが出来ますか?

描きたい図形は
円、三角、四角、直線
の4つです

Re:図形描画関数

Posted: 2009年12月15日(火) 07:45
by Ma
直線とかは、第6引数に太さを指定できます。

extern int DrawLine( int x1, int y1, int x2, int y2, int Color, int Thickness = 1 ) ;
それ以外は、図形を少しずらして描画する方法を私はとっています。
もし、たくさん使うなら太さを引数に持ったオリジナル関数を作るのがいいかと。

ちょうど、昔作った関数がのこっていたのでのせます。


中を埋めない場合は、 fillColor に 0 を指定してください。
透明度0なら alpha には 256を。
border に太さを指定してください。
void DrawFrame(int x,int y,int width,int height,int border,int borderColor,int fillColor,int alpha){
    SetDrawBlendMode( DX_BLENDMODE_ALPHA,alpha) ;
    if(fillColor != 0)
        DrawBox(x,y,x+width,y+height,fillColor,TRUE);
    if(borderColor != 0){
        for(int i = 0; i < border; i++)
            DrawBox(x+i,y+i,x+width-i,y+height-i,borderColor,FALSE);
    }
    SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0 ) ;
}

Re:図形描画関数

Posted: 2009年12月16日(水) 17:13
by 夏天
お返事遅れてすみません
どうもアリガトウゴザイマス
三角形や円にも挑戦してみます