下記のコードで扇形をピックチャーボックスに描画し
このピックチャーボックスのMouseMoveイベントで
XY座標を取得してこのXY座標が描画した扇形内の
位置にあるかないかをチェックしたいのですが。
ご教授よろしくお願いします。
Private Const PI As Double = 3.14159265359
Private Const CircleEnd As Double = -2 * PI
Private Sub Form_Load()
Dim dStart As Double
Dim dEnd As Double
Picture1.AutoRedraw = True
Picture1.FillColor = vbWhite
Picture1.FillStyle = 0
dStart = 10 * (CircleEnd / 100)
dEnd = 30 * (CircleEnd / 100)
Picture1.Circle (Picture1.ScaleWidth \ 2, Picture1.ScaleHeight \ 2), _
Picture1.ScaleHeight / 2.2, , dStart, dEnd
End Sub
扇形限定なら
扇形の中心を原点とした極座標に変換すれば
rとθそれぞれを大小比較して確認できませんか?
こういうても
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Picture1.Point(X, Y) = vbWhite Then
Text1.Text = "内側"
Else
Text1.Text = "外側"
End If
End Sub
極座標への変換をもう少し調査をしてがんばってみます。
色別判断で簡単にできるんですね。
polarさん DIYさん ありがとうございました。
ツイート | ![]() |