画像について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
DONKEY

画像について

#1

投稿記事 by DONKEY » 15年前

初めまして。
画像についての質問です。

http://dixq.net/g/05.html
↑ここを参考に画像を描いているのですが、設定した範囲外を塗りつぶすことは出来ますか?

DrawCircle( 500 , 300 , 100 , Red , TRUE) ;

以上のような書き方ですと、円の内側を塗りつぶしになりますよね?
円の外側の塗りつぶし方を教えて欲しいです。


よろしくお願いします。

Mr.Vince

Re:画像について

#2

投稿記事 by Mr.Vince » 15年前

「円の中以外」を全て塗りつぶす、と言う意味でしたら、1コマンドでは出来ません。
以下の動作を行えば(擬似的にですが)可能です。
但し、画面の元の色を知っている(何処かの変数に入れられている)のが条件です。


//画面全体を塗りつぶす
DrawBox( 0 , 0 , 640 , 480 , GetColor( 255 , 0 , 0 ) , TRUE ) ;

//円エリアのみ元の色に塗る
DrawCircle( 500 , 300 , 100 , baseColor , TRUE ) ; //baseColorは元の色が入っている変数


ご参考になれば。

DONKEY

Re:画像について

#3

投稿記事 by DONKEY » 15年前

返信ありがとうございます。

「円の中以外」を全て塗りつぶす、と言う意味の質問です。

どういうコマンドになるのでしょうか?

Mr.Vince

Re:画像について

#4

投稿記事 by Mr.Vince » 15年前

ええっと…コマンド(関数)自体は既に前回のレスに書きましたが…

DrawBox( 0 , 0 , 640 , 480 , GetColor( 255 , 0 , 0 ) , TRUE ) ;
DrawCircle( 500 , 300 , 100 , baseColor , TRUE ) ; //baseColorは元の色が入っている変数

これ以外にも纏まったプログラムがほしいという事でしょうか?

Justy

Re:画像について

#5

投稿記事 by Justy » 15年前

 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バッファに書き込んでおいて、画面全体を塗りつぶすと、
円の部分だけ描画されない、と。

DONKEY

Re:画像について

#6

投稿記事 by DONKEY » 15年前

お二人ともありがとうございます。


Justyさんの方法で試したら上手く出来ました。

助かりました、ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る