Prüfen ob Viereck konvex ist

Neue Frage »

marodeur Auf diesen Beitrag antworten »
Prüfen ob Viereck konvex ist
Hallo,

seien A,B,C,D die (geordneten) Eckpunkte eines Vierecks.
Gibt es einen einfacheren Weg zum Prüfen auf Konvexität eines Vierecks, als zu schauen, ob die Eckpunkte A und C auf der gleichen Seite der Diagonalen BD sind?
(Also Geradengleichung von BD aufstellen und A und C einsetzen und Vorzeichen vergleichen)

Das ganze soll numerisch nicht zu aufwendig sein, da es in ein Programm integriert wird.


Dank und Gruß
maro
mYthos Auf diesen Beitrag antworten »

Alle Innenwinkel des Viereckes müssen kleiner als 180° sein.

mY+
marodeur Auf diesen Beitrag antworten »

Ok, das wäre auch eine Möglichkeit. Aber ich glaube, da ist der Rechenaufwand zu groß.
Das wären insgesamt 4 Normen, 4 Skalarprodukte und 4 mal arccos.

Bei dem was ich sagte sind es:
Aufstellen der Geraden: 2mal eine Dvision
Berechnung der Funktionswerte der anderen Ecken: je eine Multiplikation (macht dann 4)
Vergleich der Vorzeichen: kostet?



achja: es ist alles in 2D.
mYthos Auf diesen Beitrag antworten »

Du wolltest eine andere Möglichkeit. Wie dein Programm damit umgeht, ist ja eine andere Geschichte ...

mY+
WebFritzi Auf diesen Beitrag antworten »
RE: Prüfen ob Viereck konvex ist
Zitat:
Original von marodeur
Gibt es einen einfacheren Weg zum Prüfen auf Konvexität eines Vierecks, als zu schauen, ob die Eckpunkte A und C auf der gleichen Seite der Diagonalen BD sind?


Das Verfahren wird kläglich scheitern. Was machst du denn, wenn der Innenwinkel bei B größer als 180 Grad ist?
marodeur Auf diesen Beitrag antworten »

@mYthos: nein, einen einfacheren. Ok einfach in Bezug auf programmierungstechnisch.

@WebFritzi: Mein Fehler, statt Diagonela BD, Gerade durch B und D.

Dann erhalte ich ja daraus

ist , so ist (x,y) ein Punkt der Geraden, sonst nicht. gibt an, auf welcher Seite der Punkte (x,y) liegt.


Ich frage ja hier, ob es was einfacheres ist, was die Zahl der Multiplikationen minimiert. Kann ja sein, dass es was gibt, dass nur durch Summen auskommt, oder so. Man kann ja nicht immer alles wissen. Augenzwinkern
 
 
AD Auf diesen Beitrag antworten »

Zitat:
Original von marodeur
@WebFritzi: Mein Fehler, statt Diagonela BD, Gerade durch B und D.

Das war es nicht, was Webfritzi gemeint hat. unglücklich

[attach]10734[/attach]

Du musst auch den Test mit der anderen Diagonalen AC machen, erst dann kannst du dir sicher sein.
marodeur Auf diesen Beitrag antworten »

ja, das ist klar, man muss beide Geraden erstellen und in denen jeweils die beiden anderen Punkte einsetzen. (bei meiner aufwandsberechnung habe ich das ja berücksichtigt)
AD Auf diesen Beitrag antworten »

Nur Additionen/Subtraktionen wird sicher nichts - Multiplikationen musst du schon hinzunehmen. Aber zumindest auf Divisionen oder gar Wurzelziehen kannst du mit nur wenigen Umformungen verzichten.

Es hat den Anschein, dass du Millionen, wenn nicht Milliarden solche Vergleiche vorhast, ansonsten würde sich ja ein Feilschen um jede kleine Operation gar nicht so lohnen. Augenzwinkern
marodeur Auf diesen Beitrag antworten »

Millionen nicht gleich, aber einige Tausend bis Zehntausend. Das wird nicht für so viele "Stellen" benötigt.

Es ist ja nicht nur das, es kommen ja noch andere Berechnungen dazu und das dann immer gleich noch in ca. 100.000-facher ausführung.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »