|
English
|
Home - - POV-Ray Details - Über Variable Vordefinierte Variable > #declare, #local Ausdrücke - Ein kurzes |
- Warum ist die Verwendung von deklarierten Variablen anstelle von Zahlen so vorteilhaft? Argumente: Einfachere Handhabung, da weniger zu schreiben! Es ist eine grundlegende Technik ím modularen Arbeiten! Wer sie nutzt ist erfolgreicher! - Besserer Überblick! (Erklärende Kommentare nicht vergessen!) [Klar, Sie wissen auch noch nach 8 Wochen was 'A' bedeutete, ... aber das sagen sie alle! :-) ] - Werte, welche in mehreren Befehlen verwendet werden - für einfachere Änderung/Anpassung - gibt mehr Freiheit im Design! Bei Änderungen müssen mehrfach benötigte Werte nicht an mehreren Stellen geändert werden! (schneller + weniger fehlerträchtig!) Beispiele: Höhe einer Säule, Texturen, ... - Texturen, bevor sie an einem Objekt verwendet werden. Dies erlaubt es sehr einfach einige Texturen später zu ändern. - Erzeugung von neuen Objekten zur mehrfachen Verwendung in einer Szene. Warum ist die Verwendung von deklarierten Objekten die mehrfach verwendet werden wichtig? Argumente: - verringerter Schreibaufwand, besonders bei Änderung des Objektes! - Vorgefertigte Objekte ermöglichen eine modulare Bauweise die wesentlich übersichtlicher ist als lauter einzelne mehrfache Beschreibungen von Teilen. '#declare' or '#local'? - Der Unterschied zwischen '#declare' und #local'. Locale Bezeichner sind wichtig um eine Identifier Name Collisions (=Kollision der Bezeichnernamen) zu vermeiden. Innerhalb einer Include-Datei oder innerhalb eines Makros (wzeischen dem Wort '#macro' und den dazugehörenden '#end') hat das definieren eines Bezeichners durch '#local' keine Wirkung auf Bezeichner gleichen Namens, die ausserhalb dieser Include-Datei oder diesee Makros deklariert wurden. Dies bedeutet es überschreibt temporär die Bezeichner gleichen Namens von ausserhalb ohne seinen Wert ausserhalb zu zerstören. Nach dem Einfügen einer Include-Datei oder nache dem Ende eines Makros werden alle lokal deklarierte Bezeichner zerstört.. Ein '#local' in der Hauptszenendatei ist identisch mit '#declare' (wenn es nicht in einer Include-Datei oder einem Makro ist). Daraus resultiert: Man kann in einem Makro oder einer Indlude-Datei Bezeichner mit Namen verwenden die schon in der Hauptszenenedatei oder in anderen Makros oder Include-Dateien verwerdet wurden, ohne dadurch die entprechenden Bezeichner-Werte der Hauptszenendatei zu zerstören. Zerstörung von Bezeichnern Benutzerdefinierte Bezeichner können mittels "#undef MyVariable" zerstört werden. Benutzerdefinierte Bezeichner können erzeugt werden abhängig davon, ob sie bislang noch nicht definiert sind: "#ifndef ( MyVariable ) #declare MyVariable = 0.5; #end" Dies ist eine elegante Methode um Objekte in Include-Dateien mit Grundeinstellungswerten (dafault values) zu erzeugen, welche nötigensfalls vom Benutzer überschrieben werden können. Siehe auch überschreibbaren |
© Friedrich A. Lohmüller, 2011 |