AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Polygon.Inflate

Ein Thema von Bjoerk · begonnen am 7. Jul 2014 · letzter Beitrag vom 8. Jul 2014
Antwort Antwort
Seite 3 von 5     123 45      
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#21

AW: Polygon.Inflate

  Alt 7. Jul 2014, 16:34
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
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#22

AW: Polygon.Inflate

  Alt 7. Jul 2014, 16:58
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..
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#23

AW: Polygon.Inflate

  Alt 7. Jul 2014, 17:21
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..
Das muss nicht unbedingt komplizierter sein, du müsstest nur mal ganz genau beschreiben, was da passieren soll. Nicht jeder kennt sich mit irgendwelchen Bau-Richtlinien (?) aus.

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?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#24

AW: Polygon.Inflate

  Alt 7. Jul 2014, 17:37
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
673 Beiträge
 
#25

AW: Polygon.Inflate

  Alt 7. Jul 2014, 17:48
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?
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#26

AW: Polygon.Inflate

  Alt 7. Jul 2014, 18:19
Wenn du mir sagst ob der Abstand pos oder neg ist? z.B. T Querschnitt
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#27

AW: Polygon.Inflate

  Alt 7. Jul 2014, 18:21
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.
Genau das, wobei die Offsets anhand der 4 Margins selbst bestimmt werden sollen.
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#28

AW: Polygon.Inflate

  Alt 7. Jul 2014, 18:24
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.
Miniaturansicht angehängter Grafiken
inflate.jpg  
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#29

AW: Polygon.Inflate

  Alt 7. Jul 2014, 18:26
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.
Genau das, wobei die Offsets anhand der 4 Margins selbst bestimmt werden sollen.
Ja, aber wie sollen die daraus bestimmt werden?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#30

AW: Polygon.Inflate

  Alt 7. Jul 2014, 18:35
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.
Genau das, wobei die Offsets anhand der 4 Margins selbst bestimmt werden sollen.
Bei einer schrägen Linie dann mit dem allseits beliebten Pythagoras? (Wobei je nach Neigungswinkel der jeweils linke/rechte und obere/untere Marginwert genommen wird). Das ist im wesentlich aber auch das, was Jens vorgeschlagen hat.

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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 5     123 45      


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 00:53 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