PostScript语言教程(六、坐标变换)

6.1、坐标系变换

POSTSCRIPT图形操作是在一个坐标系中,这个坐标系被称为用户坐标系或用户空间,该坐标系独立于任何物理设备。POSTSCRIPT在用户空间中进行绘制,并将结果传输到特定的打印机设备(设备空间)中。
在程序中,通常使用默认的坐标系。在这个空间中,原点是在页面的左下角,量度是1/72英寸长度。
然而,用户空间是可塑性的,他的坐标系可能是在位置,方向,大小变化后的。

用户空间的转化

translation是从一个地方运动到另一个地方。这个运动是原点的运动。例如:

100 200 translate 

将会把原点右移100个单位,上移200个单位,随后的操作都是根据这个新的原点进行测量。

下面的程序将说明这个转化效果。

/Times-Roman findfont 30 scalefont setfont

/square        %一个填充的方块 
{
    newpath
    0 0 moveto
    90 0 lineto     %定义正方形的路径
    90 90 lineto
    0 90 lineto
    closepath fill  %进行填充
    6 92 moveto     %文本显示
    (A Box) show } def 

square              %绘制一个方块
200 250 translate   %将原点移动x + 200 y + 250
square              %绘制第二个方块
200 250 translate   %原点再次移动x + 200 y + 250
square              %绘制第三个方块
showpage  

原文地址:https://www.cnblogs.com/Ansing/p/9996005.html

时间: 2024-10-08 06:36:17

PostScript语言教程(六、坐标变换)的相关文章

PostScript语言教程(一、介绍)

一.介绍 POSTSCRIPT语言是打印机页面魔术的一种程序设计语言.他拥有着广泛的图形操作,并且可以以任意方式,包含变量,函数,以及过程的任意组合 . POSTSCRIPT页面描述是由解析器运行的程序(gs),postscript程序通常是由其他应用程序生成的. 1.1.POSTSCRIPT作为页面语言 POSTSCRIPT具有大量的图形运算符,通过他可以更加详细的描述你的页面. 文本的字体,位置,方向,尺寸. 几何图形的大小,方向,宽度,直线和曲线的位置,任何大小形状颜色的空间填充. 1.2

PostScript语言教程(三、绘图)

3.1.画线 线 newpath 144 72 moveto 144 432 lineto stroke showpage 我们首先调用newpath,初始化当画笔状态. x y moveto,将画笔的移动到x,y的位置 x y lineto,以x,y为终点进行画线 stroke将构建的路径绘制到当前页面 showpage打印当前页 交叉线 newpath 72 360 moveto 144 72 rlineto 144 432 moveto 0 -246 rlineto storke show

YAML 语言教程(转载)

用YAML语言读取配置是最快的,之前的suricata中用yaml读取了配置,并且在代码运行期间,对配置进行了维护,所以抽点时间,来了解一下YAML语言编程,下文虽然对YAML语言和JAVAScript语言的相同语句进行了比对.但也不失为一个好的YAML入门教程. 原文地址:http://www.ruanyifeng.com/blog/2016/07/yaml.html?f=tt YAML 语言教程 作者: 阮一峰 日期: 2016年7月 4日 编程免不了要写配置文件,怎么写配置也是一门学问.

WIX 安装部署教程(六) 为你收集的七个知识点

前段时间整理5篇WIX(Windows Installer XML)的安装教程,但还不够完善,这里继续整理了七个知识点分享给大家.WIX最新版本3.8,点击下载 WIX安装部署(一)同MSBuild自动生成打包文件 WIX安装部署(二)自定义安装界面和行为 WIX安装部署(三)自定义安装界面和行为 WIX安装部署(四)添加安装文件及快捷方式 WIX安装部署(五)Bootstrap 捆绑安装 1.设置路径变量 有的时候路径过长,文件又比较多,重复粘贴一个地址总是不舒服,而且要改起来也很麻烦,那这个

Flask实例教程六

Flask-SQLALchemy 是一个给你的应用添加 SQLALchemy 支持的 Flask 扩展.SQLALchemy 是Python语言的SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行,提供能兼容众多数据库(如 SQLite.MySQL.Postgres.Oracle.MS-SQL.SQLServer 和 Firebird)的企业级持久性模型. 一.为你的Flask应用加载Flask-SqlAlchemy扩展 from flask import Flask from fl

PySide——Python图形化界面入门教程(六)

PySide——Python图形化界面入门教程(六) ——QListView和QStandardItemModel 翻译自:http://pythoncentral.io/pyside-pyqt-tutorial-qlistview-and-qstandarditemmodel/ 上一个教程中,我们讨论了Qt的QListWidget类,它用来实现简单的单列列表框(list boxes).然而,我们还需要更加灵活的widget来实现列表,Qt为此提供了QListView 来实现多种多样的项.它是一

HTML/CSS基础教程 六

表单 包含表单元素的区域, 表单元素是允许用户在表单中(文本框, 下拉列表, 单选框, 复选框等)输入信息的元素, 使用<form>标签定义. 文本域与密码域 <form> Username: <input type="text" name="firstname"> <br /> Password: <input type="password" name="lastname"

Swift中文教程(六)--枚举和结构

原文:Swift中文教程(六)--枚举和结构 Enumerations 枚举 使用 enum 来创建一个枚举.跟Classes(类)和其他类型的命名方式一样,枚举也可以有Method(方法). 1 enum Rank: Int { 2 case Ace = 1 3 case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten 4 case Jack, Queen, King 5 func simpleDescription() -> Stri

嵌入式linux C++语言(六)——运算符重载

嵌入式linux C++语言(六)--运算符重载 运算符重载的本质是函数重载. 一.重载基础 1.运算符重载的语法 返值类型 operator 运算符名称(形参表列){    重载实体;} 2.友元重载 可以将运算符重载函数声明位友元函数 #include <iostream> using namespace std; class Complex { public:     Complex(float x=0, float y=0)         :_x(x),_y(y){}     voi