AW: Polygon.Inflate
Also wenn ich das richtig verstehe, geht es hier um eine Skalierungsmethode, die nicht nur einfach die X/Y achsen der punkte basierend zum Mittelpunkt scaliert, sondern auch entscheiden lässt, ob man auf der X achse nur die Punkte skalieren will, die relativ zum Mittelpunkt im Positiven oder Negativen Teilbereich einer Achse liegen?
In diesem Fall würde ich zuerst den Mittelpunkt und die BB(BoundingBox) berechnen und danach selbige in Quadranten aufteilen. Du hast jetzt 4 Bereiche, die bestimmen von welchen der 4 Parametern ein Punkt beeinflusst wird. Liegt ein Punkt im oberen linken Quadranten wird er beeinflusst von Y+ Achse(nteil?) x- Achse Was Top/Left entspricht. Ein punkt der Direkt auf der X-Achse liegt(Egal ob X+ oder X- Teilbereich) kann nicht von der Y-Achse beeinflusst werden. In diesem Fall zählen nur Left oder Right Werte. Dies scheint z.B. im ersten Eintrag gar nicht berücksichtigt zu werden. Das selbe gilt natürlich auch umgekehrt für die Y-Achse |
AW: Polygon.Inflate
Also ich hab jetzt so ziemlich je Kombination von Skalieren und Normalisieren ausprobiert. Scheiten alle daran daß man nicht weiß in welche Richtung man normaliseren muß. Und wie die Bauleute natürlich sofort gemerkt haben, in Wirklichkeit ist es noch viel komplizierter. Die Margins verstehen sich senkrecht zu Polygonline und können auch unterschiedlich sein, z.B. Untere Bewehrung Decke vs. Unterzug..
|
AW: Polygon.Inflate
Zitat:
Zeichne doch mal ein paar aussagekräftige Beispiele. Ein interessantes Beispiel fände ich z.B. einen (näherungsweisen) Kreis... wie soll das Ergebnis dort aussehen? Da gibt es ja nicht nur links, rechts, oben und unten, sondern ganz viele Zwischenstufen. Was genau passiert mit diesen? |
AW: Polygon.Inflate
Es wäre wirklich hilfreich, wenn du dein Problem (wenn möglich ohne Verwendung von Fachbegriffen) vollständig formulieren könntest. Wenn ich das richtig sehe, ist es doch ein rein geometrisches Problem und dazu sollten einige hier was sagen können, selbst wenn sie nicht vom Bau sind. Obwohl ich selbst auch schon so einiges mit Bauleuten gemacht habe, kann ich aus deinen bisherigen Beschreibungen die eigentliche Zielsetzung nicht herauslesen.
Was ich schon mal hatte (im Kunststofffensterbau), war eine Parallelverschiebung (Offset) eines Polygons, bei dem jede Polygonlinie einen eigenen Offset mitbekommt. Ich weiß aber nicht, ob das hier das erwünschte Ziel ist. |
AW: Polygon.Inflate
Ich probiere es nochmals..
Du hast ein Polygon, das vom Bauteilquerschnitt vorgegeben wird. Es gibt für jede Strecke eine parallele Strecke mit bestimmten Abstand. Ich würde jede einzelne Strecke einfach kopieren und parallel verschieben. Die Polygonpunkte werden über die Schnittpunkte der neuen Strecken/ Geraden ermittelt. Oder? |
AW: Polygon.Inflate
Wenn du mir sagst ob der Abstand pos oder neg ist? z.B. T Querschnitt
|
AW: Polygon.Inflate
Zitat:
|
AW: Polygon.Inflate
Liste der Anhänge anzeigen (Anzahl: 1)
Dank #14 stell ich mir das grad so wie im Bild (Anhang) veranschaulicht vor.
Interessantes Problem, werd mir Gedanken darüber machen.. soferns richtig ist. |
AW: Polygon.Inflate
Zitat:
|
AW: Polygon.Inflate
Zitat:
Da das Polygon ja irgendwie gerichtet ist (z.B. positiv bei Umlaufsinn gegen den Uhrzeigersinn), ist auch jede einzelne Strecke im Polygon gerichtet. Anhand dieser Richtung ermittelt man den gewünschten Offsetwert und macht eine Parallelverschiebung der Linie um diesen Wert. Dann berechnet man die Schnittpunkte der benachbarten Linien und erhält somit die neuen Polygonpunkte. Problematisch wird es allerdings, wenn durch die Parallelverschiebung einzelne Polygonsegmente oder ganze Bereiche wegfallen. Das muss man zum einen erst erkennen und dann auch noch richtig behandeln. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:51 Uhr. |
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