Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ws1920:pm_01.04.2020 [2020/04/02 15:44] Zetraeder |
ws1920:pm_01.04.2020 [2020/04/03 11:46] (aktuell) Zetraeder |
||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
**01.04.2020** | **01.04.2020** | ||
- | [[ws1920:pm_25.03.2020|<<]] | [[ws1920:scutoids|Home]] | [[ws1920:pmcd_01.04.2020|Code]] | + | [[ws1920:pm_25.03.2020|<<]] | [[ws1920:scutoids|Home]] | [[ws1920:pmcd_01.04.2020|Code]] | [[ws1920:pm_02.04.2020|>>]] |
**[17:19 Uhr]** | **[17:19 Uhr]** | ||
Zeile 12: | Zeile 12: | ||
Heute gab es endlich mal einen Geistesblitz, der erklärt, warum die Scutoid-Analyse nicht funktioniert. Nach ich einen kurzen Test mit einem manuell geschriebenen Datensatz durchgeführt habe, stellte sich meine Vermutung als richtig heraus - den Fehler erörter ich im Folgenden, aber erstmal kurz zu dem System, mit dem ein Scutoid erkannt wird. | Heute gab es endlich mal einen Geistesblitz, der erklärt, warum die Scutoid-Analyse nicht funktioniert. Nach ich einen kurzen Test mit einem manuell geschriebenen Datensatz durchgeführt habe, stellte sich meine Vermutung als richtig heraus - den Fehler erörter ich im Folgenden, aber erstmal kurz zu dem System, mit dem ein Scutoid erkannt wird. | ||
- | Scutoids können über ihre **charakteristische Dreiecksfläche** identifiziert werden. Eine Eigenschaft dieser Fläche ist es, dass sie im Gegensatz zu den restlichen Seiten **NICHT beiden Deckflächen** miteinander **verbindet**, sondern nur an die eine angeschlossen ist. Bei einer unbekannten Zelle mit unbekannter Orientierung muss somit jedes mögliche Flächenpaar auf Deckflächeneingenschaft getestet werden (dürfen sich nicht berühren und müssen durch fast alle Seitenflächen miteinander verbunden werden). | + | Scutoids können über ihre **charakteristische Dreiecksfläche** identifiziert werden (im folgenden Bild gut zu sehen). Eine Eigenschaft dieser Fläche ist es, dass sie im Gegensatz zu den restlichen Seiten **NICHT beiden Deckflächen** miteinander **verbindet**, sondern nur an die eine angeschlossen ist. Bei einer unbekannten Zelle mit unbekannter Orientierung muss somit jedes mögliche Flächenpaar auf Deckflächeneingenschaft getestet werden (dürfen sich nicht berühren und müssen durch fast alle Seitenflächen miteinander verbunden sein). |
{{ :ws1920:00_gemetrische_formen.png |Scutoid im Vergleich zu anderen geometrischen Grundvolumina}} | {{ :ws1920:00_gemetrische_formen.png |Scutoid im Vergleich zu anderen geometrischen Grundvolumina}} | ||
Zeile 19: | Zeile 19: | ||
Es werden zwei Deckflächen ausgewählt und dann getestet, ob alle anderen Flächen bis auf eine diese miteinander verbinden. Ich hatte bisher aber nicht ausgeschlossen, dass hierbei **erneut die Deckflächen gewählt werden**. Da diese Deckfläche beim Test nur mit einer der beiden Deckflächen mindestens eine gemeinsame Kante aufweist, wird sie als Dreiecksfläche angesehen. Deshalb wurden echte Scutoids bisher nicht erkannt, da beide Deckflächen + echte Dreiecksfläche gezählt wurden, und somit das Scutoid laut Test insgesamt **3 Dreiecksflächen** besaß. | Es werden zwei Deckflächen ausgewählt und dann getestet, ob alle anderen Flächen bis auf eine diese miteinander verbinden. Ich hatte bisher aber nicht ausgeschlossen, dass hierbei **erneut die Deckflächen gewählt werden**. Da diese Deckfläche beim Test nur mit einer der beiden Deckflächen mindestens eine gemeinsame Kante aufweist, wird sie als Dreiecksfläche angesehen. Deshalb wurden echte Scutoids bisher nicht erkannt, da beide Deckflächen + echte Dreiecksfläche gezählt wurden, und somit das Scutoid laut Test insgesamt **3 Dreiecksflächen** besaß. | ||
- | Diese Fälle ließ sich durch ein einfaches if-Statement in der Analyse-Methode ausmerzen und somit werden nun die entstehenden Scutoids im fertigesn Diagramm korrekt in **blau** eingefärbt. | + | Diese Fälle ließen sich durch ein einfaches if-Statement in der Analyse-Methode ausmerzen und somit werden nun die entstehenden Scutoids im fertigen Diagramm korrekt in **blau** eingefärbt. |
(Die hier erörterte, finale Methode) | (Die hier erörterte, finale Methode) | ||
Zeile 27: | Zeile 27: | ||
# Diese Funktion testet, ob ein Meshobjekt ein Scutoid ist oder nicht. Hierzu bekommt es eine Liste aller | # Diese Funktion testet, ob ein Meshobjekt ein Scutoid ist oder nicht. Hierzu bekommt es eine Liste aller | ||
# faces übermittelt und testet, ob es eine Kombination aus zwei Flächen gibt (diese beiden dürfen sich nicht berühren, | # faces übermittelt und testet, ob es eine Kombination aus zwei Flächen gibt (diese beiden dürfen sich nicht berühren, | ||
- | # sind die Deckflächen des "Prismas"), an die jeweils beide jede andere Fläche anschließt | + | # sind die Deckflächen des "Prismas"), an die jeweils jede andere Fläche anschließt |
# (bis auf eine Fläche, diese ist die Dreiecksfläche) | # (bis auf eine Fläche, diese ist die Dreiecksfläche) | ||
| | ||
- | # das kleinstmöglichste Scutoid hat eine Dreiecksgrundgläche und eine vierecksgrundfläche und hat somit 6 Seiten | + | # das kleinstmöglichste Scutoid hat eine Dreiecksgrundgläche und eine Vierecksgrundfläche |
+ | # und hätte somit 6 Außenflächen. Zellen mit weniger Flächen können also automatisch keine Scutoids sein | ||
+ | # und müssen nicht weiter untersucht werden | ||
if (len(faces) < 6): return False | if (len(faces) < 6): return False | ||
| | ||
Zeile 61: | Zeile 63: | ||
</code> | </code> | ||
+ | ---- |