Koordinaten ermittel in VB

Hallo,

ich schreibe derzeit ein Programm das ähnlich wie ein Routenplaner funktionieren soll. Mir ist bekannt, wie man die akt. Koordinaten des Mauszeigers ermitteln kann. Ich würde gerne mit der Maus einen Bereich
makieren (wie beim Routenplaner zum Vergrößern der Karte) und bräuchte dann die so ausgewählten Koordinaten. Mir soll das Programm alle Punkte zurückgeben, die in diesem Bereich liegen!!!

Wer kann mir einen Lösungsvorschlag sagen?

Vielen Dank!

Stefan

Hallo, Stefan!

ich schreibe derzeit ein Programm das ähnlich wie ein
Routenplaner funktionieren soll. Mir ist bekannt, wie man die
akt. Koordinaten des Mauszeigers ermitteln kann. Ich würde
gerne mit der Maus einen Bereich

Ich vermute mal, dies soll mit gedrückter Maustaste passieren? Du markierst also ein Rechteck, bei dem Du von zwei gegenüberliegenden Ecken die Koordinaten brauchst. Du klickst auf die (o.b.d.A. linke obere) erste Ecke, hältst die Maustaste gedrückt, ziehst die Maus zur (o.b.d.A. rechten unteren) zweiten Ecke und lässt sie los. Das ist Deine Markierung:

Ich würde dann bei MouseDown die Koordinaten des ersten Punktes setzen und dann bei MouseUp die des anderen Punktes. Damit hättest Du Dein Rechteck. Die Variablen müssen wenigstens im Modul verfügbar sein, ggf. auch global.

Interessanter wird die Geschichte bei der Freihandauswahl oder Polygonzeichnungen. Aber das schießt wahrscheinlich übers Ziel hinaus?

makieren (wie beim Routenplaner zum Vergrößern der Karte) und
bräuchte dann die so ausgewählten Koordinaten. Mir soll das
Programm alle Punkte zurückgeben, die in diesem Bereich
liegen!!!

Ähem: Wie das? Matrix? Welche Auflösung? Und reicht Dir nicht u. U. das Rechteck?

Gruß, Manfred

Hallo, Manfred!

Danke für deine schnelle Antwort.

Hallo, Stefan!

ich schreibe derzeit ein Programm das ähnlich wie ein
Routenplaner funktionieren soll. Mir ist bekannt, wie man die
akt. Koordinaten des Mauszeigers ermitteln kann. Ich würde
gerne mit der Maus einen Bereich

Ich vermute mal, dies soll mit gedrückter Maustaste passieren?

Ja, es soll mit gedrückter Maustaste passieren!

Du markierst also ein Rechteck, bei dem Du von zwei
gegenüberliegenden Ecken die Koordinaten brauchst. Du klickst
auf die (o.b.d.A. linke obere) erste Ecke, hältst die
Maustaste gedrückt, ziehst die Maus zur (o.b.d.A. rechten
unteren) zweiten Ecke und lässt sie los. Das ist Deine
Markierung:

Ich würde dann bei MouseDown die Koordinaten des ersten
Punktes setzen und dann bei MouseUp die des anderen Punktes.

So würde ich es momentan auch lösen.
Nur zur Weiterverarbeitung soll es dann so funktionieren:
Ich spanne das Rechteck auf und das Programm ermittelt mir die bereits von mir eingezeichneten Punkte (Koordinaten vorhanden) die in den Grenzen des Rechteckes liegen.
Die neue Darstellung ist dann eine Vergrößerung des Ausschnittes.
Die Punkte sollen nun einfach „größer“ in einem neuen Formular dargestellt werden. Wie wenn man ein entsprechendes Kartenteilstück auswählt und vergrößert!

Damit hättest Du Dein Rechteck. Die Variablen müssen
wenigstens im Modul verfügbar sein, ggf. auch global.

Interessanter wird die Geschichte bei der Freihandauswahl oder
Polygonzeichnungen. Aber das schießt wahrscheinlich übers Ziel
hinaus?

makieren (wie beim Routenplaner zum Vergrößern der Karte) und
bräuchte dann die so ausgewählten Koordinaten. Mir soll das
Programm alle Punkte zurückgeben, die in diesem Bereich
liegen!!!

Ähem: Wie das? Matrix? Welche Auflösung? Und reicht Dir nicht
u. U. das Rechteck?

Gruß, Manfred

Hallo, Stefan!

So würde ich es momentan auch lösen.
Nur zur Weiterverarbeitung soll es dann so funktionieren:
Ich spanne das Rechteck auf und das Programm ermittelt mir die
bereits von mir eingezeichneten Punkte (Koordinaten vorhanden)
die in den Grenzen des Rechteckes liegen.
Die neue Darstellung ist dann eine Vergrößerung des
Ausschnittes.
Die Punkte sollen nun einfach „größer“ in einem neuen Formular
dargestellt werden. Wie wenn man ein entsprechendes
Kartenteilstück auswählt und vergrößert!

Das heißt also, Du hast eine Collection/Array oder sonst was von Punkten mit Koordinaten. Dann müsstest Du also über alle diese Punkte rüberrennen und entscheiden, ob sie im Rechteck liegen oder nicht. Das sollte dann also nicht mehr so schwer sein. Die Entscheidung, ob der Punkt im Rechteck liegt oder nicht, ist eigentlich trivial:

Sei Dein einer Rechteckpunkt (rx1, ry1), Dein anderer (rx2, ry2) und der zu überprüfende Punkt (px, py). Dann muss gelten:
min(rx1, rx2)

Hallo, Stefan!

So würde ich es momentan auch lösen.
Nur zur Weiterverarbeitung soll es dann so funktionieren:
Ich spanne das Rechteck auf und das Programm ermittelt mir die
bereits von mir eingezeichneten Punkte (Koordinaten vorhanden)
die in den Grenzen des Rechteckes liegen.
Die neue Darstellung ist dann eine Vergrößerung des
Ausschnittes.
Die Punkte sollen nun einfach „größer“ in einem neuen Formular
dargestellt werden. Wie wenn man ein entsprechendes
Kartenteilstück auswählt und vergrößert!

Das heißt also, Du hast eine Collection/Array oder sonst was
von Punkten mit Koordinaten. Dann müsstest Du also über alle
diese Punkte rüberrennen und entscheiden, ob sie im Rechteck
liegen oder nicht. Das sollte dann also nicht mehr so schwer
sein. Die Entscheidung, ob der Punkt im Rechteck liegt oder
nicht, ist eigentlich trivial:

Sei Dein einer Rechteckpunkt (rx1, ry1), Dein anderer (rx2,
ry2) und der zu überprüfende Punkt (px, py). Dann muss gelten:
min(rx1, rx2)