初めまして。
画像についての質問です。
http://dixq.net/g/05.html
↑ここを参考に画像を描いているのですが、設定した範囲外を塗りつぶすことは出来ますか?
DrawCircle( 500 , 300 , 100 , Red , TRUE) ;
以上のような書き方ですと、円の内側を塗りつぶしになりますよね?
円の外側の塗りつぶし方を教えて欲しいです。
よろしくお願いします。
画像について
Re:画像について
「円の中以外」を全て塗りつぶす、と言う意味でしたら、1コマンドでは出来ません。
以下の動作を行えば(擬似的にですが)可能です。
但し、画面の元の色を知っている(何処かの変数に入れられている)のが条件です。
//画面全体を塗りつぶす
DrawBox( 0 , 0 , 640 , 480 , GetColor( 255 , 0 , 0 ) , TRUE ) ;
//円エリアのみ元の色に塗る
DrawCircle( 500 , 300 , 100 , baseColor , TRUE ) ; //baseColorは元の色が入っている変数
ご参考になれば。
以下の動作を行えば(擬似的にですが)可能です。
但し、画面の元の色を知っている(何処かの変数に入れられている)のが条件です。
//画面全体を塗りつぶす
DrawBox( 0 , 0 , 640 , 480 , GetColor( 255 , 0 , 0 ) , TRUE ) ;
//円エリアのみ元の色に塗る
DrawCircle( 500 , 300 , 100 , baseColor , TRUE ) ; //baseColorは元の色が入っている変数
ご参考になれば。
Re:画像について
ver3系なら多分こんな感じですかね。
[color=#d0d0ff" face="monospace]
DxLib::SetUseZBufferFlag(TRUE);
DxLib::DrawCircleToZBuffer(X座標, Y座標, 半径, TRUE, DX_ZWRITE_MASK);
DxLib::DrawBox(0, 0, 画面横サイズ, 画面縦サイズ, 色, TRUE);
DxLib::SetUseZBufferFlag(FALSE);
[/color]
事前に円の形をZバッファに書き込んでおいて、画面全体を塗りつぶすと、
円の部分だけ描画されない、と。
[color=#d0d0ff" face="monospace]
DxLib::SetUseZBufferFlag(TRUE);
DxLib::DrawCircleToZBuffer(X座標, Y座標, 半径, TRUE, DX_ZWRITE_MASK);
DxLib::DrawBox(0, 0, 画面横サイズ, 画面縦サイズ, 色, TRUE);
DxLib::SetUseZBufferFlag(FALSE);
[/color]
事前に円の形をZバッファに書き込んでおいて、画面全体を塗りつぶすと、
円の部分だけ描画されない、と。