色を合成するにはどうしたらよいでしょうか。
降雨量を示す図を作ろうと思っています。
ピクチャーボックスに、すごく薄い灰色の四角形をいくつか描画し、
四角形がいくつも重なる場合は、重なり合う部分が濃くなるようにしたいのです。
以下の図で、
ABCが重なる部分が一番濃く、AとB AとC が重なる部分が次に濃く
Aのみ、Bのみ、Cのみが薄くなるように描画するにはどうしたらよいでしょうか
AAAAAAAAAA
A A
A CCCCCCACCCCCCC
A C A C
BBBBBBBBBBB A C
B A C B A C
B A CCCCCCACCCCCCC
B A B A
B AAAAAABAAA
B B
BBBBBBBBBBB
API関数( StretchBlt ) を使ってみました。
異なる色を重ねた場合は濃くなりますが、同じ色は重ねても濃くならないのです
四角形と四角形の重なる部分を取り出すAPI関数もありますが、
四角形が複数だとどうしようもありません。何かよい方法はありますか?
どうか、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
私は、VBはよく知らないのですが、回答がついていないようなので、
私のできる範囲で回答します。たぶん、動作は遅いです。
描画領域に対応する2次元の配列を用意する。
0などにリセットする。
それぞれの四角形を「描く」、つまり、2次元の配列の対応する要素に、
ある値を加算していく。
2次元配列に対応する図を実際に描く。
という作業でできると思います。
昔その方法を使ったことがあります。NEC PC8001 のころでした。
今は配列の必要はありません。
処理量が多いので動作が遅いと思っていたのですが、
実際に試してみるとそうでもありませんでした。
やはり、意見を伺ってみて正解でした。ありがとうございました。
No.3
- 回答日時:
画像とWEBが苦手なのではずしているかもしれないけど・・・GetPixelを調べてみましたか?
色の単位枠はピクセルです。ピクセル単位での色を取得し、色を色素分けして他の色素と加算したらできるのではないかな?
現在のソースを公開したほうがわかりやすいかも?
ソースを公開しようとしたのですが、投降時に文字数制限がありました。
やはり、ご指摘の方法がベスト(それしかないと思われます)
ありがとうございました。感謝いたします。
No.2
- 回答日時:
手元に開発環境がないのでヒントだけを。
色はRGB(赤緑青)の光の三原色の数値の組み合わせで決定されます。
白は0,0,0、黒は255,255,255です。
ということは、色を濃くしたいということであれば、値を増やしてあげればいいですよね。
色の専門家ではないので、どのような割合で増やせば倍の濃さになるかというのはわからないのですが。
以下の方法でうまく行きました。
Pointメソッドで座標の色を取得
色の値を256で割って余り求めを3回行い 赤緑青の三原色の値に分解
3つの値を少し小さくして、PSetメソッドで元のピクチャーに上書きする
それを四角形の枠内すべてのドットで繰り返す
グラフ程度の範囲なら処理速度にそれほど影響ありませんでした
ご指摘ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ノートパソコン Open Office.orgのDrawで描いた図形の塗りつぶしをしたい 1 2022/03/22 19:24
- 数学 円に内接する四角形が出てくる証明(添付した写真のような三角形)の時に、 円に内接する四角形の外角はそ 1 2022/06/04 01:19
- 数学 正四面体を重ねてできる構造物とは? 2 2023/04/15 00:27
- Excel(エクセル) エクセルの値を元に図形の色を変えたい 2 2022/05/11 01:37
- その他(悩み相談・人生相談) 外国人て日本人、韓国人、中国人どうやって見分けるんだろ? 俺は復そうダサかったり派手だと中国人 韓国 8 2023/06/26 18:49
- Excel(エクセル) こんなことできますか?例えば、sheetに貼り付けた図形のタイトルを、セルA1の文字で表示する。 5 2022/04/22 15:25
- 数学 『数学的帰納法のトリセツ』 4 2022/06/06 07:34
- 数学 四角形の角度のことで聞きたいです。 円に内接する四角形は外角と対角が等しいと学んだ気がするんですが、 5 2022/07/27 05:52
- その他(教育・科学・学問) 同じ子部品を複数個重ねて1つの部品にする時のCPK 2 2022/11/17 21:36
- その他(ソフトウェア) 簡単な絵が描けるソフト(wordに挿入) 3 2022/05/20 22:16
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# DrawImage 物理サイズでな...
-
画面に絵を出す方法
-
scilabでのグラフ描画時の軸設定
-
色を合成するには
-
エクセルのレーダーチャート 0...
-
Win32APIで困っています
-
タスクトレイのアイコンが消える
-
c言語 ちらつき
-
VBA シートのボタン名を変更し...
-
パソコンへの「Dropbox...
-
実行時エラー 438になった時の...
-
ユーザーフォームのテキストボ...
-
ユーザーフォームを表示中にシ...
-
カメラスクロールするのを動画...
-
worksheetFunctionクラスのVloo...
-
VBA(エクセル)で自動的にボタン...
-
「Columns("A:C")」の列文字を...
-
エクセルエラー13型が一致しま...
-
ボタンをマウスで押し続けたと...
-
実行時エラー 3265「要求された...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ListBoxで改行したい
-
for文の実行速度を遅くしたいの...
-
給紙トレイをダイアログを使わ...
-
円の頂点の求め方を知りたいです。
-
C#を用いて描画する四角形の角...
-
VB.netで図形描画ができません^^;
-
c言語 ちらつき
-
Word 描画オブジェクトを削除...
-
ビットマップに描画をしてピク...
-
win32api複数のタイマーを同時...
-
PowerPoint の VBA
-
VB.NETでグラフィックを描くと...
-
C#で壁の当たり判定と自キャラ...
-
MFCでのコンボボックスについて
-
VB 6.0 PictureBox のプロパテ...
-
VC;;6.0のMFCで線を簡単に引け...
-
C#でPictureBox内での図形移動...
-
線の描画速度
-
画面に絵を出す方法
-
C# DrawImage 物理サイズでな...
おすすめ情報