Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

22.10.2010, 11:41

Schnittpunkt mit einer Linie

Hallo Community

Ich bin wiedereinmal an einem Problem, was die Selektion mit der Maus anbelangt :P

Flächen auswählen sind kein Problem, aber wie kann ich es machen, dass der Benutzer eine einzelne Linie mit einem Startvektor und einem Endvektor auswählen kann??

Ich denke ich muss irgend eine Toleranz einrichten, welche sich "um die Linie bewegt", und dann den Schnittpunkt mit diesem Bereich prüfen.

Oder bin ich da falsch? Wie macht man so was am besten?

Danke und Gruss
MasterChief

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

22.10.2010, 14:20

Berechne den Abstand zwischen beiden Geraden, skaliere diesen umgekehrt zum Abstand zwischen "Monitor" und den kürzest zueinander entfernten Punkten der beiden Geraden, damit der Auswahl-Abstand auf dem Monitor immer konstant erscheint.
http://www.uni-stuttgart.de/bio/adamek/c…rade-Gerade.pdf
Wahlweise kannst du auch die Linie transformieren entsprechend der Transformations- und Projektions-Matrix und dann 2-dimensional den Abstand der Maus von der Linie berechnen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (22.10.2010, 16:52)


Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

3

22.10.2010, 15:36

sinnvoller ist es glaube ich einen zylinder um die linie + zwei kugeln an anfang und ende -->also eine kapsel zu konstruieren und mit der dann einen schnittest zu performen

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

4

22.10.2010, 16:44

Google mal nach "Abstand Gerade zu Gerade". Dann vergleichst Du den Abstand gegen einen gewissen Maximalabstand, den Du linear mit der Entfernung zur Kamera skalierst.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

22.10.2010, 16:51

sinnvoller ist es glaube ich einen zylinder um die linie + zwei kugeln an anfang und ende -->also eine kapsel zu konstruieren und mit der dann einen schnittest zu performen

Was effektiv genau das gleiche ist wie die Berechnung des Abstands zweier Geraden und die Punkte der minimalen Entfernung.

Schrompf, ist das nicht genau das, was ich vorgeschlagen habe? :P
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

6

22.10.2010, 21:31

im endeffekt ja, der fehler ist bloß das er liniensegmente betrachetn möchte, ansonsten klar: pixelposition in strahl umrechnen und abstand

7

04.11.2010, 08:54

im endeffekt ja, der fehler ist bloß das er liniensegmente betrachetn möchte, ansonsten klar: pixelposition in strahl umrechnen und abstand

Hallo, Danke für eure Antworten. (War ein wenig beschäftigt, daher melde ich mich erst jetzt wieder).

Ich verstehe zwar was ihr meint, aber weis nicht genau wie ich das jezt im Code umsetzen soll.

Wie berechne ich nun den Abstand einer Gerade im Raum zu einem Strahl (welchen ich ja durch das KLicken mit der Maus erhalte)?? Der Strahlt hat ja kein Start - und Endpunkt.

Ich habe einen Artikel gefudnen, nur ist der im 2D für den Abstand zweier Geraden. Klar ich könnte meine Raumgerade auf den Bildschirm proijezieren. Aber dann habe ich ja einen Punkt (Mausposition auf Bildschirm) und diese Gerade, das funktioniert dann ja auch nicht. oder??

Danke und Gruss
MasterChief

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

04.11.2010, 10:52

Ich habe doch dazu extra das PDF verlinkt. Da sollte alles klar drinstehen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

9

04.11.2010, 11:06

Mein Problem aber ist, dass ich nicht 2 Geraden habe, sondern nur eine Gerade (mit Start - und Endpunkt) und ein Strahl, welcher "unendlich" lang ist.

Vielleicht stehe ich einfach auch nur auf der Leitung. aber ich Blick echt nicht durch.

Wäre es nicht am einfachsten wenn ich die Gerade auf den Bildschirm Proijziere und den Abstand zur Maus berechne??

Wenn ja, wie setzt ich das im Code um. Ich verstehe wie das Theoretisch in der Mathematik funktioniert (also wie man den Abstand einer Gerade zu einem Punkt berechnet). Aber ich bringe das nicht hin, in Csharp - Code umzusetzen.

Mastermind

unregistriert

10

04.11.2010, 11:51

Zitat

Mein Problem aber ist, dass ich nicht 2 Geraden habe, sondern nur eine Gerade (mit Start - und Endpunkt) und ein Strahl, welcher "unendlich" lang ist.


Eine Gerade ist auch unendlich lang.

Treffen sich zwei Geraden sagt die eine "das nächste mal gibst Du einen aus"

Werbeanzeige