diff options
Diffstat (limited to 'doc/expert/pre_rota')
-rw-r--r-- | doc/expert/pre_rota | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/doc/expert/pre_rota b/doc/expert/pre_rota new file mode 100644 index 0000000..00e28ff --- /dev/null +++ b/doc/expert/pre_rota @@ -0,0 +1,57 @@ +@Section + @Title { "@Rotate" } + @Tag { rotate } +@Begin +@PP +rotate.sym @Index { @@Rotate symbol } +rotation @Index { Rotation of object } +The @@Rotate symbol will rotate its +right parameter counterclockwise an amount given in degrees (positive or +negative) by its left parameter. For example, +@ID @Code { +"30d @Rotate { hello, world }" +} +has result +@ID { +30d @Rotate { hello, world } +} +Before rotating the object, @@OneCol and @@OneRow are applied to it. The +result is a rectangle whose marks pass through the point where the +original marks crossed: +@ID { + @ShowMarks + { 0.6c @Wide 0.3c @High ^| 2.2c @Wide ^/ 0.2c @High } + +&4m => &4m + + @ShowMarks + { + 30d @Rotate + { @ShowMarks + { 0.6c @Wide 0.3c @High ^| 2.2c @Wide ^/ 0.2c @High } + } + } +} +As this example shows, rotation by an angle other than a multiple of +ninety degrees introduces quite a lot of white space. So, for example, the +result of +@ID { +@Code { "-30d" "@Rotate" 30d "@Rotate" } @I object +} +is a much larger object than {@I object}, despite the fact that one +rotation cancels the other. +@PP +Rotation of objects containing receptive and recursive symbols is +permitted, but for angles other than multiples of ninety degrees it is +best to make the size of the rotated object clear with @@Wide and +@@High symbols: +@ID @Code { +"30d @Rotate 5i @Wide 4i @High" +"{ //1i @TextPlace" +" //1i" +"}" +} +This is because for angles other than multiples of ninety degrees the +space available for @Code "@TextPlace" to occupy is indeterminate, and +the result is poor. +@End @Section |