我有这个,但我想让文字对齐像弧一样。有可能吗?
/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
% 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
答案 0 :(得分:3)
Adobe着名的Blue Book( PostScript语言教程和食谱,Adobe Systems,Addison-Wesley 1985; ISBN 0201101793 )包含一个非常好的解释如何执行此操作的示例。
参见第168页和以下屏幕截图:
答案 1 :(得分:3)
不确定为什么要避免translate
,并且不清楚“动态”是什么意思。但是这段代码在没有翻译的情况下提供了类似旋转的效果。但是,如果没有定义中心(使用translate
和rotate
,或使用cos
和sin
代数)和会计(不知何故),您就无法拥抱弧字符宽度。 Adobe示例代码完成了所有这些操作。我的代码不在这里。
%!
/rottxt { 4 dict begin
/ang exch def
/str exch def
/ang ang str length div def
{ pop pop ang rotate }
str
kshow
end } def
30 150 moveto
/Palatino-Roman 20 selectfont
(This is) -20 rottxt
( some ro) 20 rottxt
(tated T) -40 rottxt
(ext!!!!!) -100 rottxt
showpage
答案 2 :(得分:0)
我想我终于明白你要做什么了。关于translate
的部分真的让我陷入了困境。 translate
没什么可担心的。并且将是必要的。翻译是让您控制旋转中心的位置。
因此,您希望在圆上绘制文本,但是您想要动态更改字体参数。字体在弧形中间变化。这需要一些思考。当我有更多时,我会编辑。