代码之家  ›  专栏  ›  技术社区  ›  Michael Galos

在PostScript中旋转文本

  •  1
  • Michael Galos  · 技术社区  · 14 年前

    我有以下PostScript代码:

    /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命令的文本和要显示的文本,还有一个用于旋转的变量。 由于某种原因,当我输出旋转角度为>0度的文本时,之后的所有其他文本都将无法工作,我似乎无法理解为什么会出现这种情况。 在上面的示例中,将显示“text1”和“text2”,但不显示3和4。

    3 回复  |  直到 7 年前
        1
  •  3
  •   msw    14 年前

    这个 rotate PostScript中的命令将旋转整个坐标空间,而不是单个绘图操作。 90 rotate 将所有后续操作置于工作表顶部。

        2
  •  2
  •   Michael Galos    14 年前

    找到它,需要做一个负的旋转(所以如果它是旋转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
    
        3
  •  0
  •   DeeGo    7 年前

    “旋转”命令和当前转换矩阵(CTM)用于旋转PostScript中的显示文本。

    旋转 : 45旋转 10 10模 (后记)显示

    CTM矩阵 : [0.7071 0.7071-0.7071 0.7071 0 0]浓度 10 10模 (后记)显示