VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/08/02(Tue) 13:31
投稿者おじん
Eメール
URL
タイトル色の三原色を描きたい

色の三原色の模様を描いてみようと思い、下記のソースのようにしました。
いわゆる「加法三原色=ソースの上:pType=0で実行」は思うようにいった
のですが、「減法三原色、Magenta+Yellow+Cyan」はうまくいきません。
vbDrawModeの値(1-16)すべてを試してみました。が、ビット演算の「AND」
がありませんので、この方法ではできないのでしょうか。
よろしくおねがいいたします。

Formで、
Call ColorB Picture1,1
で呼び出して使います(でなくてもいいのですが、そうしています)。
Moduleで、(または1行目を書き換え、Formの例えばForm_Click()で)、
Public Sub ColorB(pic As Object, Optional pType As Long = 0)
    Dim pw!, ph!
    pic.ScaleMode = vbPixels
    pic.AutoRedraw = True
    pic.BackColor = vbBlack
    pic.FillStyle = vbSolid
    pw = pic.ScaleWidth / 3  '
    ph = pic.ScaleHeight / 3
    If pType = 0 Then         '加法三原色
        pic.DrawMode = vbMergePen
        pic.FillColor = vbRed
        pic.Circle (3 * pw / 2, ph), pw * 0.9, vbRed
        pic.FillColor = vbBlue
        pic.Circle (pw - 2, 3 * ph / 2 + 25), pw * 0.9, vbBlue
        pic.FillColor = vbGreen
        pic.Circle (2 * pw + 2, 3 * ph / 2 + 25), pw * 0.9, vbGreen
    ElseIf pType = 1 Then     '減法三原色
        pic.DrawMode = vbMergeNotPen   '<<<<<<<=======ここは???
        pic.FillColor = vbMagenta
        pic.Circle (3 * pw / 2, ph), pw * 0.9, vbMagenta
        pic.FillColor = vbYellow
        pic.Circle (pw - 2, 3 * ph / 2 + 25), pw * 0.9, vbYellow
        pic.FillColor = vbCyan
        pic.Circle (2 * pw + 2, 3 * ph / 2 + 25), pw * 0.9, vbCyan
    End If
End Sub


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -