@mml
Kein Grund für Ooops. Du hast gefragt, ich habe geantwortet, fertig. Keine Animositäten.
Nochmal, um die Konfusion hier zusammenzufassen:
Es stellten sich von allen möglichen Problemen mit dem Drehen von Objekten 3 Fragen:
1. (offens. von zzyzx und Andreas): Wie stelle ich sicher, daß ein Text in einem Objekt (*.GSM) immer horizontal, d.h. zum unteren Bildschirmrand (= X-Achse) parallel und lesbar bleibt:
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> mul2 1, 1-2*SYMB_MIRRORED
rot2 180*SYMB_MIRRORED - SYMB_ROTANGLE
text2 0,0,"dreh und spiegel mich!"
2. Wie stelle ich es an, daß ein Text in einem Objekt immer lesbar bleibt, d.h. von unten oder von rechts aus betrachtet 'richtig' herum, also nicht auf dem Kopf, steht:
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> var=1-abs(int(abs((SYMB_ROTANGLE<360)*int(SYMB_ROTANGLE/90)-1.5)))
define style "info" "Arial", 2.5, 5-(6*var-3),2
style "info"
rot2 180*var
text2 0,0, "ich dreh mich manchmal"
Dieser Algorithmus ist sicher noch zu vereinfachen, doch nicht einfach alles weglassen, ohne es zu testen. 😉
3. Selbes Problem wie bei 2. (mml - Problem), jedoch bei einer Tür (oder Fenster): Hier gibt es mehr Probleme, da das Objekt nicht auf das AC-Universum, sondern auf die assozierte Wand bezogen ist:
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> var=1-abs(sgn(SYMB_ROTANGLE)-int(abs((WALL_DIRECTION<360)*int(WALL_DIRECTION/90)-1.5)))
define style "info" "Arial", 2.5, 5-(6*var-3),2
style "info"
add2 0,ABS(WIDO_SILL-WALL_THICKNESS*WIDO_REVEAL_SIDE)*WIDO_REVEAL_ON
rot2 180*var
text2 0,0, "ich bleib bei meiner Wand auf der Öffnungseite."
Der Text steht nun, dank des ADD2-Befehls, immer lesbar auf der Außenwandkante (runde und konische Wände ausgenommen) und dreht sich ggf. um lesbar zu bleiben. Auch das kann man vereinfachen, man sollte aber nicht die REVEAL-Parameter löschen, auch wenn sie augenscheinlich keinen Sinn ergeben mögen. 🙂
Daß es evt. etwas unkonventionell ist, entspringt dem Umstand, daß es einer etwas noch komplexeren Aufgabenstellung entstammt.
Und warum nicht so lassen, wenn es funktiniert? 😉