2

我有这个,但我想要像弧一样的文本对齐。可能吗?

   /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
4

3 回答 3

3

不知道为什么要避免translate,也不清楚“动态”是什么意思。但是这段代码在没有翻译的情况下给出了类似旋转的效果。但是,如果不定义中心(使用translateand rotate,或代数使用cosand 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
于 2012-09-27T05:48:13.943 回答
3

Adobe 著名的蓝皮书PostScript Language Tutorial and Cookbook, Adob​​e Systems, Addison-Wesley 1985; ISBN 0201101793)包含一个很好解释的例子。

请参阅第 168 页和以下屏幕截图:

在此处输入图像描述

于 2012-09-26T11:00:18.627 回答
0

我想我终于明白你想要做什么了。关于的部分translate真的让我陷入了循环。没什么好害怕的translate。这是必要的。翻译是什么让你控制旋转中心的位置。

所以你想在一个圆圈上画文字,但你想动态地改变字体参数。圆弧中间的字体变化。这需要一些思考。当我有更多时,我会编辑。

于 2013-09-24T08:34:53.350 回答