gpt4 book ai didi

postscript - 后记语言中的 Concat 命令

转载 作者:行者123 更新时间:2023-12-02 04:40:31 29 4
gpt4 key购买 nike

我正在使用附言绘制一个简单的矩形

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 个元素是常量。后记 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

在任何情况下,txty 控制转换,其他值组合用于其他转换。一些 abcd 模式会导致命名转换:旋转、缩放、反射和剪切。您给出的那个符合剪切模式(如果我们将 0.9999999 视为 1):1 0 k 1,其中 k 是剪切量,在您的情况下为 -1 .

关于postscript - 后记语言中的 Concat 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20954148/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com