我有以下附言代码:
/outputtext {
/data exch def
/rot exch def
/xfont exch def
/Times-Roman findfont
xfont scalefont
setfont
/y1 exch def
/x1 exch def
x1 y1 moveto
rot rotate
data show
} def
% x y fontsize rotation (text) outputtext
20 300 12 0 (text1) outputtext
20 400 12 90 (text2) outputtext
20 500 12 90 (text3) outputtext
20 600 12 0 (text4) outputtext
showpage
该功能只是根据x,y co-ords和要显示的文本输出文本,还有一个用于旋转的变量。 出于某种原因,当我输出旋转度> 0度的文本时,之后的所有其他文本将无效,我似乎无法弄清楚为什么会出现这种情况。 在上面的示例中,将显示“text1”和“text2”,但不会显示3和4。
答案 0 :(得分:3)
Postscript中的rotate
命令旋转整个坐标空间,而不是单独的绘图操作。 90 rotate
将所有进一步的操作放在工作表的顶部。
答案 1 :(得分:2)
找到它,需要做一个负旋转(所以如果旋转90度,则需要旋转-90度)
需要以下内容:
rot neg rotate
因此功能变为:
/outputtext {
/data exch def
/rot exch def
/xfont exch def
/y1 exch def
/x1 exch def
/Times-Roman findfont
xfont scalefont
setfont
x1 y1 moveto
rot rotate
data show
rot neg rotate
} def
答案 2 :(得分:1)
@ pi3用户在评论中说:
如果您只想旋转部分文本,而不要旋转页面上的其余文本,请在旋转之前调用gsave,在输出文本之后调用grestore
我相信@ pi3给出的答案应该不仅仅是评论,所以让我粘贴一些示例代码:
newpath
200 100 moveto
gsave
90 rotate
(Lorem Ipsum Dolor Sit Amet) show
grestore
答案 3 :(得分:0)
"旋转"命令和当前转换矩阵(CTM)用于旋转Postscript中的显示文本
<强>旋转强>: 45旋转 10 10 moveto (后记)节目
CTM矩阵: [0.7071 0.7071 -0.7071 0.7071 0 0] concat 10 10 moveto (后记)节目