Benutzer-Werkzeuge

Webseiten-Werkzeuge


ws1920:pm_01.04.2020

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ws1920:pm_01.04.2020 [2020/04/01 19:48]
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]** ​
  
-{{:​ws1920:​scutoids.gif |?100}}+{{ :​ws1920:​scutoids.gif|Endlich}}
  
-Heute gab es dann endlich mal einen Geistesblitz,​ warum die Scutoid-Analyse nicht funktioniert. Nach einem kurzen Test mit einem Testdatensatz ​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}}
  
 Der **Fehler**, der sich ursprünglich in mein **"​Analyse-Tool"​** geschlichen hatte, ist dieser: Der **Fehler**, der sich ursprünglich in mein **"​Analyse-Tool"​** geschlichen hatte, ist dieser:
 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) 
 +<code python>​ 
 + 
 +def ScutoidTest(faces):​ 
 +    #   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,​ 
 +    #   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) 
 +     
 +    #   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 
 +     
 +     
 +    for a in range(0, len(faces)):​ 
 +        for b in range(a+1, len(faces)):​ 
 +             
 +            print(a, b) 
 +             
 +            scutellum = 0 
 +             
 +            if not (grenzenFlächenAneinander(faces[a],​ faces[b])):​ 
 +                 
 +                for g in faces: 
 +                     
 +                    # 
 +                    # 
 +                    #   ​(diese nachfolgende Zeile musste eingefügt werdem) 
 +                    if (g != faces[a] and g != faces[b]):​ 
 +                        if not (grenzenFlächenAneinander(g,​ faces[a]) == True and grenzenFlächenAneinander(g,​ faces[b]) == True): 
 +                             
 +                            scutellum = scutellum + 1 
 +                 
 +                print("​ Scutellum Anzahl : ", scutellum) ​     
 +                if (scutellum == 1): 
 +                    return True 
 +     
 +    return False 
 + 
 +</​code>​
  
 +----
ws1920/pm_01.04.2020.1585763286.txt.gz · Zuletzt geändert: 2020/04/01 19:48 von Zetraeder