Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Objekte mit der Maus selektieren ?

5 views
Skip to first unread message

Andrej Fraissl

unread,
Jan 22, 2007, 6:40:01 AM1/22/07
to
Hallo !

Ich beschäftige mich seit kurzem mit der DirectX-Programmierung und stehe
jetzt vor folgendem Problem:
Ich habe mittels TriangleLists einige Quader gezeichnet die "frei im Raum"
liegen. Nun sollte es möglich sein die Quader mit der Maus zu selektieren.
Aber wie stellt man fest über welchem "Objekt " sich die Maus befindet ?

mfg Andrej Fraissl

Jörg Meier

unread,
Jan 22, 2007, 8:07:03 AM1/22/07
to
Hallo Andrej,

schau mal hier:
http://www.mvps.org/directx/articles/improved_ray_picking.htm

Gruß, Jörg


Andrej Fraissl

unread,
Jan 22, 2007, 8:21:00 AM1/22/07
to
Hallo !

Danke für den Link ...

mfg Andrej Fraissl

Peter Bucher [MVP]

unread,
Feb 6, 2007, 12:11:11 PM2/6/07
to
Hallo Andrej

Du hast die Koordinaten ja in einer Liste gespeichert nehme ich jetzt mal
an.
Es ist relativ simpel, festzustellen, ob du mit dem Cursor auf dem Objekt
stehst.

In deinem Fall kannst du den Click Event der Maus benutzen und dort die
"Kollision" mit deinen Rechtecken
checken.
Evt. hilft dir hier auch das Rectangle Objekt weiter, dieses enthält die
Methoden "Intersects" und "IntersectsWith",
so kannst du mithilfe von zwei Rectangle Objekten einfach herausfinden, ob
der Klick auf eines deiner Quader erfolgt ist.

Für den Curser benutzt du einfach ein 1 x 1 Pixel Rectangle Objekt.
Wenn es um die Performance geht, würde bei der Mausabfrage, da nur ein
"Punkt", auch eine simplere Abfrage reichen,
mithilfe dieser würdest du dann die X und Y Koordinaten Range abchecken.^

--
Gruss, Peter Bucher
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland


Hintz@discussions.microsoft.com C. Hintz

unread,
Oct 16, 2008, 6:59:01 AM10/16/08
to

> Gruss, Peter Bucher
> Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland

Moin,
Ich stehe vor dem selben Problem.
leider sind eure Tips nicht für meinen Horizont geeignet.
Das C-Beispiel ist für mich einfach zu komplex (ausserdem hab mit c eh so
meine Schwierigkeiten).

Hat vielleicht jemand die Muße ein kleines Beispielprogramm (in VB) zu
entwerfen das sich auf das wesentliche konzentriert?
sehr gerne auch quick und dirty.

Eine weitere Frage von mir wäre: wie kann ich einzelne Objekte um sich
selbst rotieren?
Bisher bin ich nur in der Lage alles um den world-Ursprung zu drehen.

0 new messages