Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Jul 10, 2025 20:43

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: 4 Punkte zum Quad verbinden
BeitragVerfasst: So Mai 07, 2006 03:04 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich hab ein kleines problem... ich habe 4 Punkte aus denen ich ein Quad machen möchte.. nur, ich weiß nicht in welcher reihenfolge die punkte sind... Wie kann ich es schaffen das sich das Quad nicht überkreuzt..? :)

Ich brauche es um zwischen zwei edges (linien) eine fläche aufzuziehen.. sprich, die zwei edges sollen zwei der vier kanten des Quads sein :)

Hier mal zur veranschaulichung: A1/A2, bzw B1/B2 hängen immer zusammen, allerdings ist A1 nicht zwingend links von A2 und umgekehrt...
Bild
Auch über entfernungsmessung und dann einfach den geringsten abstand etc geht es nicht.. gibt immer fälle wo es dann schief geht :(

Hat wer ne idee wie ich das hinbekomme??

Aya~

PS: In welche richtung die Normale zeigt ist egal.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 07, 2006 08:06 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 26, 2002 22:12
Beiträge: 259
Wohnort: Dresden
Hat nicht jedes Viereck eine Winkelsumme von 360 Grad? Du hast alle vier Punkte also kannst du einfach die beiden einzigen Möglichkeiten prüfen.

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 07, 2006 09:53 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
ist das problem zweidimensional? dann (und ich glaube, das sollte in 3d auch funktionieren) kannst du die punkte ja entsprechend sortieren. zuerst nach X, und dann nach Y.

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 07, 2006 16:47 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Magellan hat geschrieben:
Hat nicht jedes Viereck eine Winkelsumme von 360 Grad? Du hast alle vier Punkte also kannst du einfach die beiden einzigen Möglichkeiten prüfen.

Das ist ne idee, werd ich mal versuchen :)

Zitat:
ist das problem zweidimensional? dann (und ich glaube, das sollte in 3d auch funktionieren) kannst du die punkte ja entsprechend sortieren. zuerst nach X, und dann nach Y.

Ne ist leider 3D :)

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 07, 2006 22:11 
Offline
DGL Member

Registriert: Mi Mär 22, 2006 20:16
Beiträge: 22
Wohnort: Wuppertal
Ich empfehle, insbesondere wenn du viel drehst, die Punkte zuerst in 2D zu Projezieren, denn du hast immer Fälle, wo aus einem Blickwinkel der Quad richtig aussieht aber in einem anderen Blickwinkel sich schneidet:
Bild
Im Demobild oben hab ich bei einem Quad den Punkt A2(z) zu mir hingezogen.

Gab schon Vorschlage, dabei wär mein Vorschlag, die Punkte B1 und B2 einfach zu vertauschen, wenn der Winkel (Cosinus-Wert) der Vektoren "Linien" V1 und V2 <0 ist, wobei V1 aus (A2-A1 [1. Linie]) und V2 aus (B2-B1 [2. Linie]) berechnet wird (Distanz zwischen P1-P2).
Die Methode, würde bei mehreren richtigen Lösungen die Lösung mit dem größten Flächeninhalt nehmen.

Ich werf dazu, unabhängig von der verwendeten Formel mal die Frage im Raum, was machst du denn in folgenden Situationen?:
Bild
Da sind sogar beide Möglichkeiten richtig, denn bei beiden kreuzt sich das Quadrat nicht, es lassen sich natürlich noch mehr solche Szenarien konstruieren.

Deshalb würde ich mich nochmal mit beschäftigen, ob du es nicht doch schaffst, die Daten schon von vornerein richtigrum zu kriegen, denn wenn die Dateneingabe undefiniert ist (bzw du weißt nicht in welche Reihenfolge die Punkte sind), dann ist natürlich auch das Aussehen der Quads in bestimmter weise undefiniert, oder ist das bei dir völlig egal, "hauptsache es kreuzt sich nicht"?

Oder könntest du uns sagen, worum es genau geht bzw wozu du das brauchst? Vielleicht gibt es ja auch ganz andere Lösungen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 08, 2006 12:57 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
mir fällt da noch was ein... muss ein "echtes" viereck nicht einen größeren flächeninhalt haben als ein überkreuztes?

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 08, 2006 20:15 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

hab es über die winkelbestimmung gemacht, hat gut geklappt :)

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 09, 2006 05:14 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo,

falls die Eckpunkte ein konkaves Viereck bilden oder die Punkte nicht alle in einer Ebene liegen, würde ich empfehlen, statt Quads lieber Triangle-Fans bzw. Triangle-Strips zu verwenden :wink:

Allerdings muss man dann auch aufpassen, mit welchem Eckpunkt begonnen wird.

Viele Grüße
dj3hut1


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]