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

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

11

06.07.2010, 22:10

Noch eine Interpretation: a und b spannen einen Vektorraum auf. Alle Punkte innerhalb des Winkel, befinden sich dann in einem bestimmten Quadranten des Vektorraums.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

12

06.07.2010, 22:15

Nachdem mit TGGC drauf aufmerksam gemacht hat eine Korrektur meiner obigen Aussage: Die Sache mit der Linearkombination stimmt so schon, ich hatte einen Denkfehler. Weiters muss man bei der Lösung mit den Kreuzprodukten nicht nur verlangen dass das Punktprodukt negativ ist sondern direkt die Richtungen beachten da die Bedingung sonst für das Spiegelbild von P um Pos auch erfüllt wäre. Em Ende läuft es dann eben auf diese Formel raus.

13

07.07.2010, 08:16

Danke, das war die Lösung!! Super, ihr habt mir aus der Patsche geholfen :thumbsup: :thumbsup: :thumbup:

14

07.07.2010, 16:13

Welche Lösung ist denn performanter? Die von dot oder von NachoMan?
stɪl traɪ tuː θɪŋk ˈpɒzətɪv

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

15

07.07.2010, 16:20

die von dot natürlich^^
für meine lösung brauch man aber keine mathematikkenntnisse sondern nur logisches verständniss. wobei der graham scan einfacher ist als ich dachte.
"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?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

16

07.07.2010, 19:46

Der Graham Scan ist ein Algorithmus der die konvexe Hülle einer Punktmenge bestimmt, hat mit dem Problem hier also nicht viel zu tun (die Formel steht lediglich dort im Artikel da dort ein ähnliches Problem auftritt).
Es gibt aber sowieso noch eine bessere Lösung. Ich hab den ersten Post nicht so genau gelesen und mich nur auf das Problem mit den zwei Schenkeln konzentriert. Da er aber scheinbar nur einen kegelförmigen Bereich will kann man das auch ganz anders lösen. Du brauchst dazu nur einen Vektor h der in Richtung der Kegelachse zeigt (also entlang der Winkelhalbierenden von deinem a und b). Alles was du dann tun musst ist das Skalarprodukt von diesem Vektor mit dem Vektor r von Pos nach P berechnen. Das Skalarprodukt entspricht ja §|\mathrm{\mathbf h}| \cdot |\mathrm{\mathbf r}| \cdot \cos \varphi§ wobei §\varphi§ der Winkel zwischen h und r ist. D.h. um das auf einen kegelförmigen Bereich zu begrenzen normalisierst du h und r und checkst ob das Skalarprodukt kleiner oder gleich dem Cosinus des Kegelwinkels ist.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

17

07.07.2010, 20:00

- Es ist nicht gewährleistet, dass der Winkel kleiner 180° ist

Da er aber scheinbar nur einen kegelförmigen Bereich will kann man das auch ganz anders lösen.

für mich hat ein "kegel" immer ein kleineren winkel als 180°
dabei fällt mir auf das der grahamscan, wenn ich ihn richtig verstanden habe, auch nicht funktionieren kann.

so hab ichs gelöst.

dabei werden die winkel in grad übergeben. ich kanns net wirklich erklären. ich hoffe du verstehst es trotzdem^^
"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 1 mal editiert, zuletzt von »NachoMan« (07.07.2010, 20:08)


TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

18

07.07.2010, 21:40


Da er aber scheinbar nur einen kegelförmigen Bereich will kann man das auch ganz anders lösen.

für mich hat ein "kegel" immer ein kleineren winkel als 180°
Die letzte Loesung von dot funktioniert aber mit jedm beliebigen Winkel und sogar in jeder beliebigen Dimension. f'`8k


Gruß, TGGC (der kostenlose DMC Download)

19

08.07.2010, 04:36

Bilde doch einfach zwei Ebenen. Wenn der Winkel kleiner als 180° ist, teste ob der Punkt vor beiden Ebenen liegt, ist das der Fall, dann ist der Punkt im Kegel, andernfalls nicht. Wenn der Winkel größer oder gleich 180° ist, dann teste ob der Punkt vor einer oder beiden Ebenen liegt. Ist das der Fall, dann liegt der Punkt im Kegel, andernfalls nicht ;)

C-/C++-Quelltext

1
2
3
4
while(true)
{
    printf("Schon wieder aufgehangen!?");
}

Werbeanzeige