AGB  ·  Datenschutz  ·  Impressum  







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

Polygone schneiden

Ein Thema von juniorA · begonnen am 17. Mai 2014 · letzter Beitrag vom 18. Mai 2014
Antwort Antwort
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Polygone schneiden

  Alt 17. Mai 2014, 06:49
moin, moin,

stehe wieder einmal auf den Schlauch.
Suche eine Funktion wie man 2 Polygone addiert und 2 Polygone subtrahiert. Bei der Subtraktion können dabei mehrere Polygone rauskommen, wenn ich z.B. Ein U in der Mitte waagerecht mit einen Balken schneide.



  Mit Zitat antworten Zitat
Bjoerk

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

AW: Polygone schneiden

  Alt 17. Mai 2014, 15:36
Was man da zunächst mal braucht ist eine function, die den Schnittpunkt von 2 Geraden ermittelt. Den Rest habe ich nicht verstanden.
  Mit Zitat antworten Zitat
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Polygone schneiden

  Alt 17. Mai 2014, 16:08
Leider ist dieses nur die habe Miete.
Stell Dir vor, Du legst zwei Polygone übereinander welche eine L Form haben und die sollen Subtrahiert

IIII IIIIIIIIII IIII
I I I Poly2 I I I
I I IIIIIII I I I
I I - I I = I I
I IIIIIII I I I III
I Poly1 I I I I I
IIIIIIIIII IIII IIIIII

oder addiert werden

IIII IIIIIIIIII IIIIIIIIII
I I I Poly2 I I I
I I IIIIIII I I IIII I
I I + I I = I I I I
I IIIIIII I I I IIII I
I Poly1 I I I I I
IIIIIIIIII IIII IIIIIIIIII



  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Polygone schneiden

  Alt 17. Mai 2014, 16:21
Leider ist dieses nur die habe Miete.
Stell Dir vor, Du legst zwei Polygone übereinander welche eine L Form haben und die sollen Subtrahiert

Code:
IIII            IIIIIIIIII      IIII
I I            I Poly2  I      I I
I I            IIIIIII I      I I
I I        -         I I    = I I
I IIIIIII            I I      I III
I Poly1 I            I I      I   I
IIIIIIIIII            IIII      IIIIII
oder addiert werden

Code:
IIII            IIIIIIIIII      IIIIIIIIII
I I            I Poly2  I      I       I
I I            IIIIIII I      I IIII I
I I        +         I I    = I I I I
I IIIIIII            I I      I IIII I
I Poly1 I            I I      I       I
IIIIIIIIII            IIII      IIIIIIIIII

Mit Code-Tags wird es halbwegs verständlich. Ein Bild wäre wohl besser geeignet (kann hier auch direkt hochgeladen werden)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Polygone schneiden

  Alt 17. Mai 2014, 16:22
Das ist nicht mal eben so zu beantworten. Wenn du bereit bist, dich einzuarbeiten: vor langer Zeit habe ich sowas in der Art mal für die Klasse TGLMultiPolygon in GLScene implementiert.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Polygone schneiden

  Alt 17. Mai 2014, 16:27
Habe gerade gesehen, dass die Skizze nicht OK ist also
Angehängte Grafiken
Dateityp: jpg Skizze_poly_verschneiden.jpg (7,8 KB, 23x aufgerufen)
  Mit Zitat antworten Zitat
Namenloser

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

AW: Polygone schneiden

  Alt 17. Mai 2014, 16:40
Das wird vermutlich wirklich nicht mal eben schnell gemacht sein. Ich habe auch seit Monaten (arbeite aber nur selten daran) sowas ähnliches in Arbeit, wobei es bei mir etwas anders ist: Ich will eigentlich ein Polygon in Dreiecke zerlegen – aber da ich auch Polygone unterstützen möchte, die sich selbst schneiden, habe ich da ein ähnliches Problem.

Vielleicht ist es hilfreich, sich vorher mal anzusehen, wie überhaupt definiert ist, ob ein Punkt sich innerhalb eines Polygons befindet. Empfehlenswerte Lektüre.

Dann kann man sich überlegen, was sich daran ändert, wenn man ein Polygon zu einem anderen hinzuaddiert – wie unterscheidet sich die Wirkung der Linien dieses Polygons? Skizzen auf Papier helfen immer. Noch ein Tipp: Es könnte helfen, ein Polygon nur als einen Haufen Strecken anzusehen und nicht als ein zusammenhängendes Gebilde – damit sind Polygone, die aus mehreren, getrennten „Inseln“ bestehen, kein Spezialfall mehr.

Damit müsste man sich was zusammenbasteln können.

Geändert von Namenloser (17. Mai 2014 um 16:44 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#8

AW: Polygone schneiden

  Alt 17. Mai 2014, 17:39
Also die Antwort bezieht sich weniger auf Polygone als auf Schriften (sind aber auch Polygone). Ich hab mich mal dafür interessiert wie Schriften berechnet werden. So enthält der Buchstabe "B" drei Polygone, also das B ohne Öffnungen und die zwei Halbkreise. Hier hört es aber schon wieder auf mit den Polygonen. Diese werden in Pixel umgerechnet und - ich glaube mit XOR - berechnet. Wo nicht ist, ist False. Wo nur ein Polygon ist, ist True. Überschneiden sich zwei Polygone, ist an der Stelle wieder False. So führt jede neue Lage zum erneuten Wechsel der Farbe.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Polygone schneiden

  Alt 17. Mai 2014, 18:02
Hier etwas akademische Lektüre dazu.

Und wer keine Zeit dafür hat, der geht direkt hierhin
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

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

AW: Polygone schneiden

  Alt 18. Mai 2014, 08:01
Noch mehr Quellen, zum Nachlesen:
Quelle 1
Quelle 2
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:02 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