投稿時間: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
|