座標のチェックをするには

解決


よし  2007-08-03 10:25:12  No: 99278

下記のコードで扇形をピックチャーボックスに描画し
このピックチャーボックスの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


polar  2007-08-03 18:42:49  No: 99279

扇形限定なら
扇形の中心を原点とした極座標に変換すれば
rとθそれぞれを大小比較して確認できませんか?


DIY  2007-08-04 09:15:18  No: 99280

こういうても

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


よし  2007-08-06 19:18:14  No: 99281

極座標への変換をもう少し調査をしてがんばってみます。
色別判断で簡単にできるんですね。
polarさん DIYさん ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加