Hallo,
Als onderdeel van een klein projectje probeer ik de locatie van een vakje in een raster (rendered image) te bepalen adhv een mousepoint.
Nu is dit helemaal niet nauwkeurig, bij iets andere coördinaten verandert de locatie van het vakje.
Ik vermoed dat ik een fout maak bij het deel waar ik de coördinaten door de zijde van het vakje deel. Iemand die me kan vertellen hoe ik dit best aanpak?
Bedankt!
Als onderdeel van een klein projectje probeer ik de locatie van een vakje in een raster (rendered image) te bepalen adhv een mousepoint.
Nu is dit helemaal niet nauwkeurig, bij iets andere coördinaten verandert de locatie van het vakje.
Ik vermoed dat ik een fout maak bij het deel waar ik de coördinaten door de zijde van het vakje deel. Iemand die me kan vertellen hoe ik dit best aanpak?
Bedankt!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| Public Class clsTeken
Public Function getRender() As Image
Dim im As New Bitmap(250, 250)
Dim g As Graphics = Graphics.FromImage(im)
g.FillRectangle(Brushes.White, 0, 0, 250, 250)
'horizontale lijnen
For i As Integer = 0 To 9
g.DrawLine(Pens.Black, 0, i * 25, 250, i * 25)
Next
'verticale lijnen
For i As Integer = 0 To 9
g.DrawLine(Pens.Black, i * 25, 0, i * 25, 250)
Next
g.Dispose()
Return im
End Function
End Class |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Veld tekenen met de class "clsteken"
Dim yourfield As New clsTeken()
pbYou.Image = yourfield.getRender
End Sub
Private Sub pbYou_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pbYou.Click
'Alles declareren
Dim LocalMousePosition As Point
Dim puntx, punty, vakjex, vakjey As Integer
Dim vakje As String
'Muispositie bepalen
LocalMousePosition = pbYou.PointToClient(Cursor.Position)
'X en Y wegsteken
puntx = LocalMousePosition.X.ToString
punty = LocalMousePosition.Y.ToString
'X en Y in labels schrijven
lblX.Text = puntx
lblY.Text = punty
'X en Y delen door zijde van vakje
vakjex = puntx / 25
vakjey = punty / 25
'Positie van vakje wegscgrijven
vakje = vakjex & " , " & vakjey
lblVaksken.Text = vakje.ToString
End Sub |