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

hanhau

Treue Seele

  • »hanhau« ist der Autor dieses Themas

Beiträge: 80

Wohnort: St. Pölten, Österreich

Beruf: schueler

  • Private Nachricht senden

1

07.01.2015, 21:03

Punkt in Dreieck Test

Abend und willkommen in meinen Thread !

Zu meinen Problem:
Ich brauche eine simple Kollissionserkennung für einen Punkt, der in einen Dreieck kollidiert. Es geht hier erstmals nicht um Geschwindigkeit, sondern um etwas genauere Funtkion.

Ich bin zudem erst 14 1/2 und habe mit Vektorenrechnung noch nie etwas am Hut gehabt, als ich mich intensiv mit C++ in der Kombination mit SFML auseinandergesetzt habe.
Darum bitte ich etwas verständnisvoll zu sein, schließlich bin ich kein Mathe-Freak, aber ich werde mich bemühen, versprochen :)

Mit Notizblock und Bleistift kam ich schon auf die Idee, dass man prüft, auf welcher Seite der Punkt im Bezug zu einer Geraden ist. Erst wenn bei allen drei Geraden der Punkt auf der richtigen Seite ist, ist die Kollission da.
Zudem bin ich aber noch mit den Koordinatensystem von SFML etwas verwirrt und etwas zu viel im Moment für mich. Kann mir Rat geben ? :)

Danke für Antworten :D
Oft denke ich an sie, niemals habe ich sie gefragt, niemals etwas gesagt,
nur verzweifelt am PC gesessen und dabei die Zeit vergessen, sie ist weg.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »hanhau« (07.01.2015, 21:11)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

07.01.2015, 21:10

Mit Notizblock und Bleistift kam ich schon auf die Idee, dass man prüft, auf welcher Seite der Punkt im Bezug zu einer Geraden ist. Erst wenn bei allen drei Geraden der Punkt auf der richtigen Seite ist, ist die Kollission da.

Sehr Gut! Damit hast du tatsächlich eine der möglichen Lösungen gefunden (eine ziemlich gute sogar) :)
Bleibt wohl nur die Frage, wie man nun feststellt, auf welche Seite einer Gerade ein Punkt liegt. Ein hilfreiches Stichwort dazu: Kreuzprodukt

PS: Man würde wohl eher von einem "Punkt in Dreieck Test" sprechen, als von einer "Kollision" ;)

hanhau

Treue Seele

  • »hanhau« ist der Autor dieses Themas

Beiträge: 80

Wohnort: St. Pölten, Österreich

Beruf: schueler

  • Private Nachricht senden

3

07.01.2015, 21:13

Danke, werde mal googlen, oder auch meine Mathelehrerin darüber befragen, die sollte das ja können ^^

PS: Thread-Titel angepasst :D
Oft denke ich an sie, niemals habe ich sie gefragt, niemals etwas gesagt,
nur verzweifelt am PC gesessen und dabei die Zeit vergessen, sie ist weg.

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

4

07.01.2015, 22:27

Andere Möglichkeiten wären (Nur zum Denkanstoß):
Berechne die Fläche des Dreiecks.
Bilde nun die 3 Dreiecke, die aus je 2 der Dreieckspunkte sowie dem zu testenden Punkt bestehen und addiere ihre Flächen.
Wie sehen die Flächensumme und die Dreiecksfläche aus, wenn der Punkt im/außerhalb des Dreiecks liegt?

Ein anderes Stichwort, performanter in der Berechnung aber komplizierter zu verstehen: Baryzentrische Koordinaten.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

5

07.01.2015, 22:49

Danke, werde mal googlen, oder auch meine Mathelehrerin darüber befragen, die sollte das ja können ^^

Dass du dich dabei nicht täuschst.... Lehrer an allgemeinbildenen Schulen haben viel zu oft Probleme mit Fragen, die nicht ihrem Lehrplan entsprechen. :(
Einer meiner Lehrer hat uns eine ein Beispiel zur Wahrscheinlichkeitsrechnung gezeigt. Ich habe mit einem selbst geschrieben Programm erstmal ausprobiert(mit hilfe von zufälligen Werten) wie das echte Ergebnis wäre). Danach ist mir aufgeallfen, dass ich die Wahrscheinlichkeit auch abzählen konnte. Mein Lehrer konnte mein Ergebnis nicht erklären. D.h. er hat das Ergebnis akzeptiert, konnte mir aber keinen mathematischen Weg erkären. Ich hatte es quasi mit "Brute Force" gezählt... Bis heute weiß kenn ich keinen mathematischen Weg obwohl ich die Lösung hatte.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »NachoMan« (07.01.2015, 23:00)


6

07.01.2015, 23:11

Bis heute weiß kenn ich keinen mathematischen Weg obwohl ich die Lösung hatte.

Wenn dus noch hast, würd ich es mir gerne mal ansehen.

Zum Thema:
http://www.blackpawn.com/texts/pointinpoly/
Lieber dumm fragen, als dumm bleiben!

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

7

07.01.2015, 23:17

Für Punkt in Polygon ist allgemein die einfachste Lösung eine strähl von dem Punkt aus zu schießen und zu zählen wieviele Seiten dieser Strahl dann schneidet. Ist die Zahl ungerade, liegt der Punkt im Polygon. Um die Rechnung zu vereinfachen, sollte der Strahl parallel zu einer der Achsen verlaufen.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

8

07.01.2015, 23:48

@TGGC:
Das kommt darauf an, wie du "einfach" definierst!

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

9

08.01.2015, 08:36

Spontan fallen mir gleich drei Grade der Einfachheit ein, wo dieser Algorithmus zu den "einfachsten" gehoert:
- wenn man versucht zu verstehen, warum dieser Algorithmus fuer beliebige Vielecke ein korrektes Ergebnis liefert
- wenn man den Algorithmus programmiert, da man keine Sonderfaelle fuer konkave Vielecke brauch und das Loesungsverfahren auch numerisch stabil ist
- bei der Anzahl Anweisungen, die im worst case ausgeführt werden

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

08.01.2015, 10:12

Bezüglich numerischer Stabilität: Gibt es nicht ein Problem, wenn du deine Gerade zufällig (fast) parallel zu einer der Kanten des Polygons wählst?

Werbeanzeige