Vergleichsfunktionen

28/10/2015 - 10:42 von Hans-Peter Diettrich | Report spam
Beim Puzzeln bin ich auf das Problem gestoßen, daß bei der Suche nach
zusammenpassenden Teilen sehr viele Sonderbehandlungen notwendig werden,
je nachdem ob (am Rand) eine Kante und der Winkel am Rand bekannt sind,
und das nochmal unterschiedlich für den oberen, linken (unteren,
rechten) Rand, oder ob zwei Kanten bekannt sind (letztes Teil in einer
2x2 Matrix), oder gar noch mehr Kanten.

Fàllt dazu jemand ein Verfahren ein, mit dem sich die nötigen Vergleiche
der verschiedenen Parameter (Kantenlàngen, Winkel usw.) systematisieren
lassen?

Bislang gehe ich so vor, daß zu allen Eckpunkten eines Teils die
Kantenpaare in Abhàngigkeit von ihrem Erscheinungsbild (glatter Rand,
mit Ein-/Ausbuchtung) in eigene Listen eingetragen werden, damit alle
Teile, die grundsàtzlich nicht passen können, bei der Suche
ausgeschlossen werden. Die Listen-Eintràge sind nach der Lànge der
linken Kante sortiert. Dann wird im ersten Suchlauf die erste und letzte
Ecke gesucht, die etwa (+-epsilon) zu der ersten bekannten Kante paßt.

Nun wird aber schon eine Fallunterscheidung notwendig, ob die linke oder
rechte Kante tatsàchlich vorgegeben ist. Wenn die Listen nach der (Lànge
der) linken Kanten sortiert sind, und die linke Kante garnicht gegeben
ist (am linken Rand des Puzzles), nützt die ganze Sortiererei der Listen
nichts :-(

Sollte ich dann die Listen besser nach dem Innenwinkel am Eckpunkt
sortieren, das wàre der einzige Parameter, der in allen Fàllen bekannt
ist? Oder diese Listen zweimal erstellen, einmal sortiert nach der
linken und einmal nach der rechten Kante? Oder sortiert nach der Lànge
der Kante, die kein Rand ist?

Zudem könnten noch die Ecken der Randteile von der Suche ausgenommen
werden, wenn das gesuchte Teil (bekanntermaßen) nicht am Rand des
Puzzles liegt.

Anschließend muß nochmal im ausgewàhlten Bereich gesucht werden, nach
der am besten passenden Ecke. Bei Gleichheit eines Parameters muß der
nàchste Parameter verglichen werden, und dabei sinnvollerweise
abwechselnd für beide Kanten - und schon wieder müssen die Fàlle
unterschieden werden, in denen nur die linke oder rechte oder beide
Kanten vorgegeben sind :-(

TIA
DoDi
 

Lesen sie die antworten

#1 0#
01/01/1970 - 01:00 | Warnen spam
Versuche doch mal etwas über
den ePuzzler zu erfahren.

Ähnliche fragen