Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Mathematik: Konturen (Punkte-Array) vergleichen (https://www.delphipraxis.net/198642-mathematik-konturen-punkte-array-vergleichen.html)

Uwe Raabe 21. Nov 2018 10:18

AW: Mathematik: Konturen (Punkte-Array) vergleichen
 
Zitat:

Zitat von TigerLilly (Beitrag 1418589)
Denn wenn du nur 4 Punkte hast, weißt du über die Kontur eigentlich nichts.

Der gezeigte Algorithmus geht von einer geraden Verbindung zwischen den Punkten aus - darauf bezog sich mein Einwand. Bei andersartigen Konturabschnitten (Kreisbogen, Bezier) kommt man mit zwei Punkten pro Anschnitt eh nicht aus und der Algorithmus müsste dann ganz anders aussehen.

bcvs 21. Nov 2018 11:08

AW: Mathematik: Konturen (Punkte-Array) vergleichen
 
Mir fällt da folgender Ansatz ein:

Voraussetzung: Die Kontur ist durch Geraden zwischen den Konturpunkten definiert.

- Es wird eine innere und äußere Kontur gebildet, indem die Konturgeraden um das Maß der Toleranz nach innen bzw außen parallel verschoben werden.

- An den Knickpunkten werden die Schnittpunkte der neuen inneren bzw äußeren Konturgeraden bestimmt. Das sind dann die Eckpunkte der Toleranzfläche.

- Dann wird für jeden Punkt der zu prüfenden Kontur geprüft, ob er innerhalb der Toleranzfläche liegt. Dazu bildet man eine Gerade von dem zu prüfenden Punkt nach irgendwo ganz weit außerhalb und bestimmt die Anzahl der Schnittpunkte dieser Gerade mit der inneren und äußeren Kontur der Toleranzfläche. Ist die Anzahl ungerade, liegt der Punkt innerhalb der Toleranz.

Uwe Raabe 21. Nov 2018 12:34

AW: Mathematik: Konturen (Punkte-Array) vergleichen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von bcvs (Beitrag 1418596)
- Es wird eine innere und äußere Kontur gebildet, indem die Konturgeraden um das Maß der Toleranz nach innen bzw außen parallel verschoben werden.

- An den Knickpunkten werden die Schnittpunkte der neuen inneren bzw äußeren Konturgeraden bestimmt. Das sind dann die Eckpunkte der Toleranzfläche.

Das hört sich einfacher an als es tatsächlich ist und kann ganz schön tricky werden, wenn durch die Parallelverschiebung und die Schnittpunktberechnung plötzlich ganze Teilstrecken verschwinden (gerade bei kurzen Teilstrecken im Verhältnis zum Toleranzwert). Diese Beispiel zeigt dabei noch einen relativ simplen Fall.

Die Abstandsberechnung ist da schon deutlich stabiler und vermutlich auch effizienter.

Rollo62 21. Nov 2018 15:39

AW: Mathematik: Konturen (Punkte-Array) vergleichen
 
Hört sich nach Polygonen an, könnte sein das Clipper was dabei hat.
So in der Art, Schnittmenge o.ä.

Rollo

ISMIRSCHLECHT 17. Dez 2018 15:36

AW: Mathematik: Konturen (Punkte-Array) vergleichen
 
Hallo,

ist das Problem noch relevant ?
Falls ja : Die Konturen ausfüllen (also doch als Bild) und nach "zweidimensionaler Kreizkorrelation" suchen.
D.h. beide Konturen sind dann Arrays mit den Werten 0 oder 1.
Die KKF wirkt Wunder

ISMIRSCHLECHT (ism)

Matze 17. Dez 2018 17:15

AW: Mathematik: Konturen (Punkte-Array) vergleichen
 
Hallo
Zitat:

Zitat von ISMIRSCHLECHT (Beitrag 1421069)
ist das Problem noch relevant ?
Falls ja : Die Konturen ausfüllen (also doch als Bild) und nach "zweidimensionaler Kreizkorrelation" suchen.
D.h. beide Konturen sind dann Arrays mit den Werten 0 oder 1.
Die KKF wirkt Wunder

Sorry, aufgrund von Prüfungsstress habe ich ganz vergessen, mich nochmals zu melden.
Ich nutze nun die Bildfunktionen der bestehenden Bibliothek. Ich vermute, die arbeitet intern ähnlich oder nach KKF (Binärbild ist erforderlich), da das ausreichend flott ist. Aber sehr interessant zu wissen, was intern dahinter stecken könnte.

Euch nochmals vielen Dank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:37 Uhr.
Seite 2 von 2     12   

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