tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
806
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    the edge the edge ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    10
    Hallo Leute.

    Ich hab ne Frage zu DirectX9.
    Ich zeichne mir zwei Würfel, wobei ich einen von beiden mit der Maus bewegen kann.
    Nun zu meinem Problem: Ich möchte mit der Maus einen Würfel selektieren und ihn verschieben können. Gib es eine Funktion in DirectX9 mit der ich ein dargestelltes Objekt (mit der Maus) selektieren kann, wenn ja wie heißt sie?
    Bis jetzt kann ich immer nur einen Würfel oder beide bewegen, aber nicht zwischen ihnen hin und her schalten...
    Schon einmal Danke für Eure Antworten...

    Mfg

    the edge
     

  2. #2
    Flegmon Flegmon ist offline Mitglied Brokat
    Registriert seit
    Aug 2004
    Beiträge
    351
    Hallo,

    Was benutzt du DirectDraw oder Direct3D?
     

  3. #3
    the edge the edge ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    10
    Hi,
    ich benutzte Direct3D....
     

  4. #4
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Eine Selektion an sich gibt es nicht. Da musst du selbst Hand anlegen:

    Mit D3DXVec3Unproject kannst du die Maus-Position in den Object-Space projizieren. Beachte dabei, dass dieselben Matrizen eingesetzt werden, die für das Objekt verwendet wurden (World-Matrix).

    Ruf D3DXVec3Unproject zwei mal auf, mit zwei Ausgangsvektoren MausX,MausY, 0 bzw. 1.
    Dadurch erhältst du zwei Punkte im 3d-Raum. Bei diesen beiden Punkten sind X und Y NICHT gleich. Das ist richtig so.

    Diese beiden Punkte stellen eine Linie dar (die Maus zeigt ja nicht auf einen einzelnen Punkt im 3d-Raum, sondern auf eine ganze Linie von Punkten).
    Mit dieser Linie musst du jetzt Schnittpunkte mit den Bounding Boxes oder den tatsächlichen Triangles berechnen. Der Schnittpunkt, der am nächsten zur Kamera liegt, ist der entscheidende Punkt. Speichere also bei der Berechnung alle gefundenen Schnittpunkte bzw. merk dir den, der am nächsten zur Kamera liegt. Es könnte ja sein, dass beide Objekte hintereinander liegen.

    "Schon" hast du dein Objekt gefunden!
     

  5. #5
    the edge the edge ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    10
    Hallo Endurion,
    danke für Deinen Tipp, habe es hinbekommen....
    Lass Dir gutgehen...

    Mfg
    th edge
     

Ähnliche Themen

  1. DirectX9
    Von the edge im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 23.08.05, 07:38
  2. VBVideoControl Sample aus DirectX9 SDK
    Von burgberger im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 19.04.04, 17:10
  3. Cinema vs. DirectX9
    Von paleface im Forum Cinema 4D
    Antworten: 4
    Letzter Beitrag: 30.03.04, 21:08
  4. max5.1 sp1 + directx9
    Von El_Schubi im Forum 3D Studio Max
    Antworten: 3
    Letzter Beitrag: 25.05.03, 23:24
  5. Directx9.0 vernichten?
    Von Iwein im Forum Microsoft Windows
    Antworten: 7
    Letzter Beitrag: 06.05.03, 13:14