AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Polygon - Punkte im Uhrzeigersinn

Ein Thema von e-gon · begonnen am 18. Aug 2017 · letzter Beitrag vom 18. Aug 2017
Antwort Antwort
Seite 1 von 2  1 2   
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
154 Beiträge
 
Delphi 6 Enterprise
 
#1

Polygon - Punkte im Uhrzeigersinn

  Alt 18. Aug 2017, 11:35
Hallo!

Im Moment versuche ich mich an einem Raumskizzenprogramm. Zunächst gibt der Benutzer die Eckpunkte eines Raumes per Mausklick an, woraus dann ein Polygon erstellt wird. Anschließend kann man an den Wänden per Klick Fenster und Türen einfügen. Ansich funktioniert auch alles, allerdings müssen für die Türen die Punkte des Polygons im Uhrzeigersinn gegeben sein, weil die Türen sonst nach Außen statt nach Innen zeigen.

Gibt es eine einfache Möglichkeit herauszufinden, ob die Punkte im Uhrzeigersinn oder entgegen erstellt wurden? Kann mir jemand ein Stichwort dafür nennen wonach ich da suchen muss? Ich finde einfach nichts dazu...

Gruß
e-gon
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.555 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Polygon - Punkte im Uhrzeigersinn

  Alt 18. Aug 2017, 11:48
VCL oder FMX?

Sherlock
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
hstreicher

Registriert seit: 21. Nov 2009
219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Polygon - Punkte im Uhrzeigersinn

  Alt 18. Aug 2017, 12:35
evtl hilf das weiter , ganz unten

http://www.matheboard.de/archive/419771/thread.html

mfg Hannes
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#4

AW: Polygon - Punkte im Uhrzeigersinn

  Alt 18. Aug 2017, 12:43
Gaußsche Trapezformel sollte zum Ziel führen
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
154 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Polygon - Punkte im Uhrzeigersinn

  Alt 18. Aug 2017, 12:48
@Sherlock
Ich verstehe die Frage nicht. Die Punkte liegen als dynamisches Array von Points vor, die der Funktion Canvas.Polygon übergeben werden.

@Hannes
Das muss ich mir mal genauer anschauen.

@ibp
Danke für den Tipp.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.709 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Polygon - Punkte im Uhrzeigersinn

  Alt 18. Aug 2017, 13:31
Hätte einfach gedacht
* Mittelpunkt berechnen
* Winkel des des jeweils ersten und zweiten Punktes vom Mittelpunkt aus berechnen
* Differenz der beiten Winkel
* wenn 0-180° dann sorum und ansonsten andersrum
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (18. Aug 2017 um 13:34 Uhr)
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
154 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: Polygon - Punkte im Uhrzeigersinn

  Alt 18. Aug 2017, 13:45
Die Lösung war die Gaußsche Trapezformel.

Delphi-Quellcode:
var
  P: Array of TPoint;
  n,i: Word;
  Summe: Extended;

...

Summe:= 0;
n:= Length(P);
for i:= 0 to n-1 do Summe:= Summe+(P[i].Y+P[(i+1) mod n].Y)*(P[i].X+P[(i+1) mod n].X);
Wenn Summe>0 dann Uhrzeigersinn, sonst Gegenuhrzeigersinn.

Gruß und Danke an alle!
e-gon
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.555 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Polygon - Punkte im Uhrzeigersinn

  Alt 18. Aug 2017, 14:27
@Sherlock
Ich verstehe die Frage nicht. Die Punkte liegen als dynamisches Array von Points vor, die der Funktion Canvas.Polygon übergeben werden.
FMX liefert einiges mit, daß bei der Arbeit mit 3D-Objekten hilft. VCL... nicht so sehr, wie du siehst. Das ist alles worauf meine Frage hinaus wollte.

Sherlock
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.301 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Polygon - Punkte im Uhrzeigersinn

  Alt 18. Aug 2017, 15:15
Die Frage wäre vielleicht auch ob sich die Polygone selbst schneiden und zerteilen, oder nicht.
Bei so komplexen Polygonen kann es ganz schön unübersichtlich werden.
Funktioniert die Gaußsche Formel da auch noch 100% sicher ?

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.796 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Polygon - Punkte im Uhrzeigersinn

  Alt 18. Aug 2017, 15:23
Die Frage wäre vielleicht auch ob sich die Polygone selbst schneiden und zerteilen, oder nicht.
Bei so komplexen Polygonen kann es ganz schön unübersichtlich werden.
Funktioniert die Gaußsche Formel da auch noch 100% sicher ?
Solange die Definition von rechts/links mit Flache > 0 oder < 0 definiert ist, funktioniert das schon.

Nimmt man z.B. ein Polygon, daß eine Acht bildet: Was ist denn da links/rechts rum?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf