Hallo Kollegen:
folgendes Problem - ich soll aus einer Menge von Messwerten ein Isolux-Diagramm (= Diagramm, dass die Beleutungsstärken als Kurven oder Flächen gleicher Helligkeit anzeigt) zeichnen:
Ich habe einen Haufen (ca. 500) errechnete Lux-Werte, die auf einer Ebene liegen.
Das heisst, es gibt zu jedem Wert eine x- und eine y- Koordinate, man kann es also als vollständigen Graphen interpretieren, dessen Knoten gewichtet sind.
Weiters habe ich Intervalle, in die die Werte einzuteilen sind, sowas in der Art 4.5 bis 5 Lux,
4 bis 4.5 Lux,
und so weiter
Was ich nun brauche, ist eine Suchfunktion, den Graphen in "Flächen" (Spannbäume?) einteilt, je nachdem, in welchem Intervall die Gewichte der Knoten liegen. Dummerweise kann es aber vorkommen, dass es zwei hellere Bereiche mit hohen Luxwerten gibt, die durch eine dünklere Fläche getrennt ist.
Irgendwer eine Ahnung, wie ich das angehen könnte?
Wäre euch sehr dankbar!
Graphen-Algorithmus
-
-
Erzeugung eines Iso-Linien Diagramms:
Mach zuerst eine Delauney Triangulation. Innerhalb der Dreiecke kannst du dann die Werte aus den drei Eckpunkten interpolieren (hier verschiedene Interpolationen ausprobieren: Linear, Kubisch, ...) . Dann wende auf diese kontinuierliche 2D Funktion (das interpolierte Messwerte-Feld) für das Erzeugen der Iso-Lionien einfach einen 2D Marching-Cube Algorithmus an (sozusagen Marching Square).
Andere Methode:
Für jeden Pixel x,y auf der Ebene berechnest Du den interpolierten Wert aus den Meßwerten der Umgebung in einem gewissen Radius R. -
Hey, wow, du verstehst echt was davon, Danke!!
hab mir doch gedacht, dass es da Algos dafür geben muss, aber nicht gewusst, wie oder wo ich die auftreiben kann...
(Hab ja grad erst das Grundstudium hinter mir)
Jetzt dürfts mir nicht mehr so schwer fallen, danach zu googlen.
Ich hoffe nur, dass Flash diese Algos dapackt :coolsmile. -
hmm, 2D Marching-Square-Algorithmus hört sich verdammt gut an...
Ich teile also mein Feld in Rechtecke ein, und bei jedem Recheck schau ich, ob eine meiner Intervall-Grenzen durchläuft, oder? Dabei gibt es nur 16 Möglichkeiten, WIE Grenzen durch meine Rechtecke laufen können... Und daraus bastel ich dann Kurven...
Nur mal so eine Frage: Wenn ichs hinbring, dass ich per Flash direkt aus EULUMDAT-Files (Das sind Dateien, die die Lumen einer Lampe nach Abstrahwinkel von der Lampe speichern) die Isolux-Linien am Boden abhängig von der Höhe zeichne (mit Maßstab und Beschriftung) und eine 50-Seiten Arbeit mit allen Algos und so schreib, reicht das dann als Bakk-Arbeit in Computergrafik?
Und: kann ich die schon schreiben, bevor ich alle LVAs fertig hab? -
Zitat von Saruman
und eine 50-Seiten Arbeit mit allen Algos und so schreib, reicht das dann als Bakk-Arbeit in Computergrafik?
Die "Bakkalaureatsarbeit" scheint ein Detail des Studiums zu sein, das sehr viele Leute mißverstehen. Ein Erklärungsversuch:
Erstens ist der Name Bakkalaureatsarbeit irreführend, weil man instinktiv Parallelen zu Diplom- oder Doktorarbeiten zieht. Das ist aber nicht gerechtfertigt: Die Bakk-Arbeiten sind weniger umfangreich, müssen keine bahnbrechenden (oder sonstigen) wissenschaftlichen Neuigkeiten enthalten, müssen nicht verteidigt werden, landen nicht in der Nationalbibliothek und existieren manchmal nichtmal.
Mal ganz von vorne: Jeder muß ein "Seminar (mit Bakkalaureatsarbeit)" und ein "Projektpraktikum (mit Bakkalaureatsarbeit)" absolvieren.
Im Rahmen des Seminars muß man typischerweise ein Referat halten und eine schrifliche Ausarbeitung anfertigen. Das mußte man schon immer; nur im neuen Studienplan heißt die schriftliche Ausarbeitung nicht wie früher Seminararbeit, sondern Bakkalaureatsarbeit. Mehr als ein neu eingeführter Name ist das aber nicht. Es muß auf der Arbeit nichtmal Bakkalaureatsarbeit draufstehen oder sonstwas. Meine war 13 Seiten lang und war nicht mehr als eine Zusammenfassung von ein paar Sachen aus ein paar Papers. Ich geh auch stark davon aus, daß sie nie jemand außer meinem Betreuer und den paar Teilnehmern des Seminars zu Gesicht bekommen hat.
Beim Praktikum ist die Sache so, daß man typischerweise ein Programm schreibt. Die Dokumentation des Programms (Userdoku, Design, verwendete Algorithmen... je nach Betreuer) stellt die Bakkalaureatsarbeit dar. Das ist wiederum etwas, was man selbstverständlich machen muß, nur daß der Studienplan vorsieht, daß es statt Doku Bakkalaureatsarbeit heißt. (Und es scheint auch das zu sein, was du dir so unter dem Begriff vorstellst.) Jedenfalls sollte das auch nicht der Knochenjob sein, 50 Seiten halte ich für... ähm... sehr motiviert :thumb:
Mein Betreuer verlangt da zum Beispiel nur Enduser-Doku. Die muß zwar auch korrekt sein, aber wissenschaftliche Arbeit ist das keine.Kurzfassung: Die "Bakkalaureatsarbeit" ist nix, wovor man sich fürchten muß, sie ist nichts formales und ergibt sich automatisch aus dem Seminar bzw. Praktikum; sie ist kein eigener Schwerpunkt, sondern eher Nebenprodukt.
Und um noch ein Detail deiner Frage zu beantworten: Ja, vom Umfang und Inhalt her ist die Arbeit sicher supi. Du mußt aber einen Betreuer finden, der bereit ist, dir für Programm+Arbeit ein Praktikumszeugnis zu geben. Und den würd ich nicht erst suchen, wenn ich fertig bin...
ZitatUnd: kann ich die schon schreiben, bevor ich alle LVAs fertig hab?
Ja. Mußt du sogar Denn Seminar und Praktikum sind auch normale LVAs. [Plantschkuh! ab, Obszönitäten über Statistik und Physik murmelnd] -
Ahhhhssooooo ist das. Hab ich wirklich missverstanden. War wohl ausn Studentenheim etwas zu sehr auf "wissenschaftliche Arbeit" konditioniert, weil ich der einzige Bakk-Student im Stock bin:verycool:.
Gut zu wissen, danke! :thumb:
Mit dem Betreuer suchen isses so, dass ich das Programm nicht am Spaß an der Freude schreibe und hoffe, es fürs Studium zu brauchen, sondern weil mir ein Hersteller von Straßenleuten und Flutlichtlampen Kohle dafür zahlt. Das gleich als Bakk-Arbeitsstoff zu nutzen wär nur eine angenehme Nebenerscheinung...:engel:
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!