
色を合成するにはどうしたらよいでしょうか。
降雨量を示す図を作ろうと思っています。
ピクチャーボックスに、すごく薄い灰色の四角形をいくつか描画し、
四角形がいくつも重なる場合は、重なり合う部分が濃くなるようにしたいのです。
以下の図で、
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ランキング
-
ListBoxで改行したい
-
円の頂点の求め方を知りたいです。
-
PictureBoxのダブルバッファリ...
-
excel2007 ではマクロの記録で...
-
C#(.net) ドロー系ソフト作成 ...
-
WindowsAPIの、ウインドウの表...
-
画面に絵を出す方法
-
線の描画速度
-
ポリゴン 球体を三角形パッチ...
-
CADとC言語のリンク
-
delphi 画面のちらつき
-
ビットマップに描画をしてピク...
-
VC++2010 MFC EDIT に格子
-
フォームに描画して表示をスク...
-
VC;;6.0のMFCで線を簡単に引け...
-
Word:描画オブジェクト内の画...
-
立方体をくるくる回転させるプ...
-
角が丸い長方形の描画
-
for文の実行速度を遅くしたいの...
-
C#で壁の当たり判定と自キャラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ListBoxで改行したい
-
C#を用いて描画する四角形の角...
-
for文の実行速度を遅くしたいの...
-
給紙トレイをダイアログを使わ...
-
PowerPoint の VBA
-
VB.NETでグラフィックを描くと...
-
MFCでのコンボボックスについて
-
PictureBoxのダブルバッファリ...
-
Word:描画オブジェクト内の画...
-
VB PictureBoxの描画範囲
-
VC++ MFCチェックボックスの色...
-
Word 描画オブジェクトを削除...
-
Visual C++ MaskedTextBoxの右...
-
C++/CLIを用いて画像をクリップ...
-
VB.netで図形描画ができません^^;
-
VC;;6.0のMFCで線を簡単に引け...
-
VB.NETでphotoshopのレイヤーの...
-
角が丸い長方形の描画
-
図の削除直後の再描画
-
vb6のTEXTBOX
おすすめ情報