- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用带有以下内容的 postscript 绘制一个简单的矩形
1 -1 scale
0 -300 translate
newpath
88.9 117.25 moveto
131.6 117.25 lineto
88.9 259.75 lineto
closepath fill
88.9 117.25 moveto
111.4 94.75 lineto
154.1 94.75 lineto
131.6 117.25 lineto
closepath fill
131.6 117.25 moveto
154.1 94.75 lineto
154.1 237.25 lineto
131.6 259.75 lineto
closepath fill
%%EndDocument
结果是一个 3D 矩形。
但是当我添加以下代码时,矩形会以某个角度倾斜。
[ 0.9999999 0 -1 1 261 0 ] concat
我可以理解,这种行为是由于与 CTM 连接的矩阵中使用的值引起的。谁能解释一下上面矩阵中值的使用以及它如何影响绘图的行为?
编辑:
非常感谢您提供的信息。实际上,我正在使用 post 脚本将位图转换为 eps。为此,我将对 Graphics 对象执行的用于绘制位图的所有操作转换为其等效的后脚本命令。
我正在将 C# 中的 g.Transform=matrix
转换为 [matrix.Elements[0] ...... [matrix.Elements[5] ] concat
在后脚本中。从我搜索到的内容来看,两者在功能上看起来都与我相似,但绘制的 eps 的结果与位图图像不同。所以,我想知道 postscript 矩阵串联变换是如何工作的。谁能解释一下我转换为 eps 的方法出了什么问题?
最佳答案
当前的 CTM Transformation Matrix ,通常是 3x3 矩阵。在 Postscript 中,它表示为 6 元素数组,因为 3x3 CTM 中的 3 个元素是常量。 Postscript CTM 数组
[a b c d tx ty]
对应于3x3 CTM矩阵
a b 0
c d 0
tx ty 1
尽管它经常以转置形式出现(如链接的文章中所示):
a c tx
b d ty
0 0 1
无论如何,tx
和 ty
控制翻译,其他值组合起来进行其他转换。一些abcd
模式会导致命名变换:旋转、缩放、反射和剪切。您给出的适合剪切模式(如果我们将 0.9999999 视为 1):1 0 k 1
,其中 k
是剪切量,在您的情况下为 -1 .
关于postscript - Postscript 语言中的 Concat 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20954148/
下面的代码绘制了一条宽虚线曲线。曲线太宽以至于虚线重叠。在黑色虚线重叠的某些地方,输出似乎是错误的。我已经在 Mac OS X 和 Ghostscript 的预览版中对此进行了测试。谁能解释一下? %
例如,我以编程方式构造了一个字符串 (/r1 [256 782 502] def) 然后我想按照 PostScript 指令执行字符串,以便将数组放在堆栈上。 如何执行字符串对象? 最佳答案 正如 K
我正在寻找一种交叉影线各种基本形状的方法。是否有我找不到的填充样式,或者我应该使用剪裁? 最佳答案 查看第 4.9 章:Patterns of the PostScript Language Refe
按给定字符将字符串拆分为数组的最简单方法是什么?例如,通过空间分割来制作一个单词数组;甚至制作一个包含字符串所有字符的数组。 我能想到的唯一方法是使用 search在一个循环中。由于所有语言都有用于此
我正在尝试将两个或多个 postscript 文件合并为一个。我尝试了连接,但它不起作用,因为每个 postscript 文件可能有不同的资源头。 以前有人这样做过吗?是否有任何图书馆(商业或开源)?
我想达到与此相同的目的: 4 1 1 [1 0 0 1 0 0] {} image 但使用基数表示: 4 1 1 [1 0 0 1 0 0] 2#0100 image %this one does n
我需要在 postscript 中确定字符串的高度(以给定的比例和字体)。 /Helvetic-Oblique findfont 10 scalefont setfont 10 10 1 0 360
我确实有以下由 Ghostscript 生成的 PostScript 代码内容Windows XP 上的打印机。 /Euro /Times-BoldItalic /Times-BoldItalic-C
目标是使这条线正常工作: (árvíztűrő tükörfúrógép,ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP) show 所有这些字符都在 中CE 编码矢量 . 这些链接可能有助于找到答案:
我真的很纠结于 postscript 中的语法。该程序在堆栈中给出了 6 个值,并且需要以相同的顺序返回堆栈,每个项目都添加 1。我在这一点上迷路了,下面的程序是我能得到的最接近的程序。这当前需要一个
我正在寻找一种方法将一堆连接线渲染为 postscript 中的一条漂亮的连续曲线。渲染曲线穿过我所有的点很重要。 curveto似乎是绘制曲线的唯一可用方法,但该功能需要贝塞尔控制点,而我没有。 那
这个问题的目的是从编程的角度更好地理解 PostScript。下面描述的目标只是一个用于说明的示例。 在 PostScript 语言中,我可以定义一个程序来设置当前图形颜色,如下所示: /cRED {
我正在使用带有以下内容的 postscript 绘制一个简单的矩形 1 -1 scale 0 -300 translate newpath 88.9 117.25 moveto 131.6 117.2
我是 PostScript 语言的新手。现在我正在使用 ps 打印点的缩放图像。 ps默认的dpi是72dpi,不知道怎么改成600dpi。 我写的代码如下,是一个点的正方形。 %%Dot_unit
我希望能够将条形码添加到生成的 postscript 文件中。 postscript 文件是由另一个程序生成的,我无法更改该程序的工作方式。 我发现几个线程表明这可以通过将 Postscript 文件
我有一个带有两个变量的简单函数 /func { /var1 exch def /var2 exch def ... process ... } def (var2)(var1)func 我想让 var
我有一个 pdf 文件或该 pdf 的后脚本文件。我的要求是将此文件转换为 ZPL 代码,以便我的热敏打印机可以打印它。我在谷歌上搜索了很多但找不到任何可以满足我要求的解决方案。如果您以前遇到过这种情
我有一个 pdf 文件或该 pdf 的后脚本文件。我的要求是将此文件转换为 ZPL 代码,以便我的热敏打印机可以打印它。我在谷歌上搜索了很多但找不到任何可以满足我要求的解决方案。如果您以前遇到过这种情
在运行时之前已知值为 10 和 20 的示例,以便更好地理解以下实际问题: /point1 { 10 20 } def 将数字 10 和 20 放入(匿名)过程然后将其分配给名称 point1(因此它
我正在尝试使用 pathforall 为路径中绘制的每条线应用不同的颜色。当我把“描边”放在末尾时,它显然只会用最近的颜色绘制形状。每次颜色变化后如何执行笔画?/lineto 的功能 block 不接
我是一名优秀的程序员,十分优秀!