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

17.04.2011, 18:04

Winkel zwischen zwei Geraden ermitteln

Hi,

ich habe zwei Strecken x1,y1 - x2,y2 und x2,y2 - x3,y3 welche sich im Punkt x2,y2 treffen. Hier würde ich gerne Den Winkel ermitteln, den die Strecken in Zeichenrichtung rechts von sich bilden. Da ich nicht weiß, ob der eventuell >=180 Grad ist, möchte ich dafür keinen der Winkelsätze benutzen.

Nur: wie geht es dann am effektivsten?

2

17.04.2011, 18:52

ich würde es eher bei den strecken P1-P2 und P3-P2 probieren, dann muss man die strecken normalisieren und mithilfe von sinus und cosiuns die winkel errechnen, die differenz der winkel ergibt den von dir gesuchten winkel

Zitat

Basically, there are only 10 types of people in the world. Those who know binary, and those who don't.

3

17.04.2011, 19:12

OK, ich habe es gefunden: wenn ich die beiden Linien als Vektoren behandele und deren beide Winkel habe, dann ist die differenz aus diesen der gesuchte Winkel :-)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

17.04.2011, 19:22

Am einfachsten geht das übers Skalarprodukt. Aber mal davon abgesehen: Was willst du denn genau machen dass du denkst diesen Winkel zu brauchen? Meiner Erfahrung nach gibt es praktisch immer eine elegantere Lösung als mit irgendwelchen Winkeln zu hantieren.

5

20.04.2011, 08:23

Am einfachsten geht das übers Skalarprodukt. Aber mal davon abgesehen: Was willst du denn genau machen dass du denkst diesen Winkel zu brauchen? Meiner Erfahrung nach gibt es praktisch immer eine elegantere Lösung als mit irgendwelchen Winkeln zu hantieren.



Das ist recht schnell zu erklären: Ich habe ein Polygon, bei dem ich nicht weiß, ob es im oder gegen den Uhrzeigersinn gezeichnet wurde und möchte ermitteln, welche Zeichenrichtung es tatsächlich hat.

Meine Idee war es, einfach die Winkel zwischen den einzelnen Strecken zu ermitteln und zu addieren, das jeweils "rechts" und "links" neben diesen. Je nach dem, welcher der Gesamtwinkel größer ist, ist das Polygon anders herum orientiert (kleinere Winkelsumme muss innen sein).

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

20.04.2011, 08:48

Dann hatte dot Recht. ;)
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]

7

20.04.2011, 09:05

Dann hatte dot Recht. ;)



Womit? Mit dem Skalarprodukt oder mit der eleganteren Lösung?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

20.04.2011, 09:15

Mit der eleganteren Lösung. Das Skalarprodukt dürfte bei Deinem Problem nicht viel helfen. Das Kreuzprodukt hingegen jedoch schon.
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

20.04.2011, 09:26

Öhm ja...und wie bilde ich aus meinen Koordinaten dieses Kreuzprodukt? Wikipedia haut mir da leider was (für mich) ziemlich unverständliches um die Ohren...

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

20.04.2011, 09:41

Anders als Wikipedia würde ich es vermutlich auch nicht erklären.
Der Abschnitt "Komponentenweise Berechnung" sagt eigentlich schon alles klipp und klar.
Genau genommen dürfte für Dich sogar nur die dritte Zeile des Ergebnisses von Interesse sein. Also a1b2-a2b1. Das Vorzeichen liefert dir die gesuchte Antwort auf Dein Polygon-Problem.
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]

Werbeanzeige