Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Drehsinn von Ebenen (https://www.delphipraxis.net/187110-drehsinn-von-ebenen.html)

Bjoerk 28. Okt 2015 10:59

Drehsinn von Ebenen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Gibt es die Möglichkeit herauszufinden ob der Drehsinn einer Ebene mathematisch positiv oder negativ eingegeben wurde (Siehe Anlage)? :oops:

Memnarch 28. Okt 2015 11:10

AW: Drehsinn von Ebenen
 
Ich schätze mal nicht. Für eine Drehung bzw eine sichtbare Orientierung eines Objektes gibt es mehrere Wege die nach Rom führen.

Bambini 28. Okt 2015 11:13

AW: Drehsinn von Ebenen
 
Zitat:

Zitat von Bjoerk (Beitrag 1319938)
Gibt es die Möglichkeit herauszufinden ob der Drehsinn einer Ebene mathematisch positiv oder negativ eingegeben wurde (Siehe Anlage)? :oops:

Wenn man die Reihenfolge der Vertexes kennt, schon.

Jens01 28. Okt 2015 11:14

AW: Drehsinn von Ebenen
 
Meinst Clockwise sowas?

Such mal nach "clockwise" auf der Seite.

So sieht die Funktion bei mir aus:

Delphi-Quellcode:
function TPolygon.IsClockwiseXY: Boolean;
// Paul Bourk - A = Area des Polygons
var
  A: Double;
  i: Integer;
begin
  A     := 0;
  for i := 0 to Count - 2 do
    A   := A + (Self[i].X * Self[i + 1].Y - Self[i + 1].X * Self[i].Y);
  A     := A / 2;
  Result := A < 0;
end;
Bin mir aber nicht ganz sicher, ob es das ist, was Du suchst.

Bjoerk 28. Okt 2015 11:23

AW: Drehsinn von Ebenen
 
Hallo Jens,
das mit A = Summe Determinanten / 2 stimmt nur am Gesamtsystem.

Bambini 28. Okt 2015 11:38

AW: Drehsinn von Ebenen
 
http://stackoverflow.com/questions/1...lockwise-order

Jens01 28. Okt 2015 11:57

AW: Drehsinn von Ebenen
 
Du zählst die Punkte eh irgendwie anders. Ist das FEM-Shit?:shock:

Bjoerk 28. Okt 2015 12:29

AW: Drehsinn von Ebenen
 
Nee, ich zähle nicht anders? :) Deine Formel gilt hat nicht für Slice(Polygon) und wäre auch nur so wie gezeigt richtig, wenn du den 1. Punkt als letzen Punkt nochmal drin hast.

Ich brauch das für die Berechnung von Volumen und Schwerpunkt von Spannungskörpern bei schiefer Biegung für meine Polyederklasse. Polyeder sind quasi räumliche N-Ecke. Da gibt man die Eckpunkte und die einzelnen Begrenzungsebenen an. Voraussetzung ist hierbei, daß alle Ebenen mathematisch positiv eigegeben worden sind. Hierfür wollte ich eine kleine Überprüfung schreiben und falls nicht dann die Punkte in umgekehrter Reihenfolge setzen.

Delphi-Quellcode:
    Polyeder.Clear;
    Polyeder.AddPoint(1, 1, 0);
    Polyeder.AddPoint(4, 1, 0);
    Polyeder.AddPoint(4, 6, 0);
    Polyeder.AddPoint(1, 6, 0);
    Polyeder.AddPoint(4, 6, 10);

    Polyeder.AddPlane([0, 3, 2, 1]);
    Polyeder.AddPlane([1, 2, 4]);
    Polyeder.AddPlane([1, 4, 0]);
    Polyeder.AddPlane([4, 3, 0]);
    Polyeder.AddPlane([3, 4, 2]);

    ShowMessage(Format('%.3f', [Polyeder.Volumen]));
    C := Polyeder.Center;
    ShowMessage(Format('%.3f', [C.X]));
    ShowMessage(Format('%.3f', [C.Y]));
    ShowMessage(Format('%.3f', [C.Z]));

Jens01 28. Okt 2015 12:48

AW: Drehsinn von Ebenen
 
Zitat:

wäre auch nur so wie gezeigt richtig, wenn du den 1. Punkt als letzen Punkt nochmal drin hast
Danke für den Himweis, schon bei mir korrigiert. Ansonsten bin ich raus. Ich schmeiss mal den Begriff Triangulation rein, aber ohne drüber nachgedacht zu haben.
Bis dahin...

Namenloser 28. Okt 2015 13:11

AW: Drehsinn von Ebenen
 
Einfach von allen aneinanderliegenden Vektoren (Differenzen zwischen den Punkten) das Kreuzprodukt nehmen? Wenn bei allen Ergebnissen (wieder ein Vektor) die Z-Achse > 0 ist, ist der Drehsinn positiv. Wenn er bei allen < 0 ist, ist der Drehsinn negativ. Falls beide Vorzeichen vorkommen, ist bei der Eingabe ein Fehler passiert. Zumindest müsste das meiner Meinung nach funktionieren.

Du solltest aber auch noch prüfen, ob die Punkte wirklich auf einer Ebene liegen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:03 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz