null第三章 图形变换与输出第三章 图形变换与输出变换的数学基础变换的数学基础 矢量
矢量和
变换的数学基础变换的数学基础矢量的数乘
矢量的点积
性质变换的数学基础变换的数学基础矢量的长度
单位矢量
矢量的夹角
矢量的叉积 变换的数学基础变换的数学基础矩阵
阶矩阵
n阶方阵
零矩阵
行向量与列向量
单位矩阵
矩阵的加法
矩阵的数乘
矩阵的乘法
矩阵的转置
矩阵的逆 变换的数学基础变换的数学基础
矩阵的含义
矩阵:由m×n个数按一定位置排列的一个
整体,简称m×n矩阵。
A=其中,aij称为矩阵A的第i行第j列元素变换的数学基础变换的数学基础
矩阵运算
加法
设A,B为两个具有相同行和列元素的矩阵
A+B =
数乘
kA = [ k*aij]|i=1...m, j=1,.. n
变换的数学基础变换的数学基础
乘法
设A为3×2矩阵,B为2×3矩阵
C = A · B =
C=Cm×p = Am ×n ·Bn×p cij = ∑aik*bkj
单位矩阵
在一矩阵中,其主对角线各元素aii=1,其余皆为0的矩阵称为单位矩阵。n阶单位矩阵通常记作In 。 Am ×n = Am ×n ·In
k=1,n变换的数学基础变换的数学基础
逆矩阵
若矩阵A存在A·A-1=A-1·A=I,则称A-1为A的逆矩阵
矩阵的转置
把矩阵A=(aij)m×n的行和列互换而得到的n×m矩阵称为A的转置矩阵,记作AT 。
(AT) T = A
(A+B)T = AT + BT
(aA)T = aAT
(A·B)T = BT ·AT
当A为n阶矩阵,且A=AT ,则 A是对称矩阵。变换的数学基础变换的数学基础
矩阵运算的基本性质
交换律与结合律
A+B=B+A;
A+(B+C)=(A+B)+C
数乘的分配律及结合律
a(A+B) = aA+aB;
a(A · B) = (aA) ·B=A ·(aB)
(a+b)A = aA + bA
a(bA) = (ab)A
变换的数学基础变换的数学基础矩阵乘法的结合律及分配律
A(B ·C) = (A ·B)C
(A+B) · C = A · C+ B · C
C ·(A+B) = C ·A + C · B
矩阵的乘法不适合交换律
齐次坐标
所谓齐次坐标表示法就是由n+1维向量表示一个n维向量。如n维向量(P1,P2, … ,Pn)表示为(hP1,hP2,hPn,h),其中h称为哑坐标。
1、h可以取不同的值,所以同一点的齐次坐标不是唯一的。
如普通坐标系下的点(2,3)变换为齐次坐标可以是(1,1.5,0.5)(4,6,2)(6,9,3)等等。
2、 普通坐标与齐次坐标的关系为“一对多”
由普通坐标h→齐次坐标
由齐次坐标÷h→普通坐标
3、 当h=1时产生的齐次坐标称为“规格化坐标”,因为前n个坐标就是普通坐标系下的n维坐标。齐次坐标齐次坐标齐次坐标(x,y)点对应的齐次坐标为
(x,y)点对应的齐次坐标为三维空间的一条直线
齐次坐标的作用齐次坐标的作用1. 将各种变换用阶数统一的矩阵来表示。提供了用矩阵运算把二维、三维甚至高维空间上的一个点从一个坐标系变换到另一坐标系的有效方法。
2. 便于表示无穷远点。
例如:(x h, y h, h),令h等于0
3. 齐次坐标变换矩阵形式把直线变换成直线段,平面变换成平面,多边形变换成多边形,多面体变换成多面体。
4. 变换具有统一表示形式的优点
便于变换合成
便于硬件实现
窗口视图变换 窗口视图变换 用户域和窗口区
1 .用户域:程序员用来定义草图的整个自然空间(WD)
a 人们所要描述的图形均在用户域中定义。
b 用户域是一个实数域,理论上是连续无限的。
2. 窗口区:用户指定的任一区域(W)
a 窗口区W小于或等于用户域WD
b 小于用户域的窗口区W叫做用户域的子域。
c 窗口可以有多种类型,矩形窗口、圆形窗口、多边形窗口等等
d 窗口可以嵌套,即在第一层窗口中可再定义第二层窗口,在第I层窗口中可再定义第I+1层窗口等等。 窗口视图变换窗口视图变换1. 屏幕域(DC):设备输出图形的最大区域,是有限的整数域。如图形显示器分辨率为1024768→DC[0..1023][0..767]
2. 视图区:任何小于或等于屏幕域的区域
a 视图区用设备坐标定义在屏幕域中
b 窗口区显示在视图区,需做窗口区到视图区的坐标转换。
c 视图区可以有多种类型:圆形、矩形、多边形等。
d 视图区也可以嵌套。 窗口区和视图区的坐标变换 窗口区和视图区的坐标变换 设窗口的四条边界WXL,WXR,WYB,WYT
视图的四条边界VXL,VXR,VYB,VYT
则用户坐标系下的点(即窗口内的一点)(Xw,Yw)对应屏幕视图区中的点(Xs,Ys),其变换公式为
窗口区和视图区的坐标变换窗口区和视图区的坐标变换简化为:
1) 当ac时,即x 方向的变化与y方向的变化不同时,视图中的图形会有伸缩变化,图形变形。
2) 当a=c=1,b=d=0则Xs=Xw,Ys=Yw,图形完全相同。
思考:前面讲的窗口→视图变换时,假设窗口的边和坐标轴平行,如果窗口的边不和坐标轴平行呢? 窗口区和视图区的坐标变换窗口区和视图区的坐标变换
A. 先让窗口FGHI转-α角,使它和FG'H'I'重合。
B. 用(1)式进行计算。
图形变换图形变换图形变换是计算机图形学基础
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
之一。
几何变换,投影变换,视窗变换
线性变换,属性不变,拓扑关系不变。
作用:
把用户坐标系与设备坐标系联系起来;
可由简单图形生成复杂图形;
可用二维图形表示三维形体;
动态显示。
二维图形的显示
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图二维图形的显示
流程图
破产流程图 免费下载数据库流程图下载数据库流程图下载研究框架流程图下载流程图下载word
图形的几何变换图形的几何变换图形变换:对图形的几何信息经过几何变换后产生新的图形。
图形变换的两种形式:
1.图形不变,坐标系改变;
2.图形改变,坐标系不变。
我们所讨论的是针对坐标系的改变而讲的。 null图形变换一般是指将图形的几何信息经过几何变换后产
生新的图形。
图形变换既可以看做是图形不动而坐标系变动,变动后该图形在新的坐标系下具有新的坐标值;也可以看作是坐标系不动而图形变动,变动后的图形在坐标系中的坐标值发生变化。
线框图形的变换,通常是以点变换为基础,把图形的一系列顶点做几何变换后,连接新的顶点序列,即可产生新的变换后的图形。
对于用参数方程描述的图形,可以通过参数方程几何变换,实现对图形的变换。
图形学中,实现图形变换时通常采用齐次坐标系来表示坐标值,可方便的用变换矩阵实现对图形的变换。
齐次坐标表示法,就是用n+1维矢量表示一个n维矢量,即n维空间中的点的位置矢量(P1,P2…Pn)被表示为具有n+1个坐标分量的矢量(hp1,hp2…hpn,h)。null齐次坐标表示法一方面可以表达无数远点;另一方面提
供了把矩阵运算把二维三维甚至高维空间中一个点集从
一个坐标系变换到另一个坐标系的有效方法。
这里讨论的几何变换都是在齐次坐标下。3.1图形的几何变换
基本的几何变换研究物体坐标在直角坐标系内的平移、旋转和变比的规律。基本变换可分为二维几何变换和三维几何变换两大类。对于参数表示的曲线曲面等图形的变换,基于效率的考虑,一般对其参数做变换来实现对整个图形的变换,而不是逐点进行变换。
3.1.1二维图形几何变换
1、基本变换
(1)平移(Translation)
null平移是将对象从一个位置(x,y)移到另一个位置(x’,y’)的变换。Tx=x’-x,Ty=y’-y称为平移距离。平移变换公式为:(x,y)(x’,y’)0XY图3.1 平移null(2)旋转(Rotation)
旋转是以某个参考点为圆心,将对象上的各点(x,y)围绕圆心转动一个逆时针角度,变为新的坐标(x’,y’)的变换。当参考点为(0,0)时,旋转的公式为:因为x=rcosa,y=rsina,所以上式可转化为:
如果参考点不是(0,0),而是任意一点(xr,yr),那么绕(xr,yr)点的旋转由3个步骤:
A、将对象平移Tx=-xr,Ty=-yr
B、按式(3.2)做旋转变换
C、平移Tx=xr,Ty=yr。组合这3个步骤的公式为(3.2)nulla(x,y)(x’,y’)0YX图3.2 旋转null(3)变比(Scaling)
变比是使对象按比例因子(Sx,Sy)放大或缩小的变换,公式:按式(3.3)做变比变换时,不仅对象的大小变换,而且,对象离原点的距离也发生了变换。如果只希望变换对象的大小,而不改变对象离原点的距离,称为固定点变比(Scaling Relative to a Fixed Point)。以a为固定点进行变比的方法:
1、做平移Tx=-xa,Ty=-ya
2、按式(3.3)做变比
3、做(1)的逆变换,即做平移Tx=xa,Ty=ya(3.3)null(x’,y’)(x,y)Y0X图3.3 变比当变比因子Sx或Sy小于0时,对象不仅变化太小,而且分别按x轴或y轴被反射。下图(a)表示当Sy=-1,Sx=1时的变化,按x轴反射;(b)表示当Sy=1,Sx=-1时的变化,按y轴反射;(c)表示当Sx=-1,Sy=-1时按原点(0,0)反射。nullX (a)x轴反射XX(b)y轴反射(c)原点反射2、变换矩阵
上述三种基本变换公式都可以表示为3×3的变换矩阵和齐次坐标相乘的形式。
1)平移的矩阵运算形式null简记为p’=p.T(Tx,Ty)。其中,p’=[x’,y’,1],p=[x,y,1]表示平移矩阵。
2)旋转的矩阵运算表示为简记为p’=p.R(),其中R()表示旋转矩阵。
3)变比的矩阵运算表示为null简记为p’=p.S(Sx,Sy),其中S(Sx,Sy)表示变比矩阵。
3、级联变换(Composite Transformation)
由基本变换构成的连续变换序列称为级联变换。一个比较复杂的变换需要连续的进行若干个基本变换才能实现,也就是要经过级联变换。
变换的矩阵形式使得级联变换的工作量大为减少。以绕任意点旋转变换为例,本应该进行如下3次变换:(3.4)(3.5)(3.6)null将式(3.4)(3.5)代入(3.6)得令Tc称为级联变换矩阵。
3.1.2 三维图形几何变换
1、旋转
分为三种基本旋转:绕Z、Y、X旋转。
下述旋转公式设旋转的参考点在所绕的轴上,绕轴转角,方向是从轴所指处往原点看是逆时针。null1、绕Z轴旋转的公式(简记Rz())矩阵运算的表达式2、绕X轴旋转的公式(简记Rx())null3、绕y轴旋转的公式(简记Ry())null如果旋转所绕的轴不是坐标轴,而是一条任意轴。首先,对旋转轴做平移和绕轴旋转变换,使得所绕之轴与某一条
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
轴重合;然后,绕该标准坐标轴做所需角度的旋转;最后,通过逆变换使所绕之轴恢复到原来位置。需要7个基本变换的级联才能完成。Rx(a)Ry()aRz()xxxxxyyyyyzzzzzp2p2p2p1p2p2p1p1(a)初始状态(b)p1点与原点重合p1(c)p1p2落入平面xoz(d)p1p2与Z轴重合(e)绕p1p2轴角旋转p1null2、旋转
设Sx,Sy,Sz是3个坐标轴方向的比例因子,则有:矩阵的表示为简记为S(Sx,Sy,Sz),对于某个非原点参数点(Xf,Yf,Zf)进行固定点变比变换,是通过如下级联变换实现的:null下面介绍三维几何变换的指令,与二维几何变换类似,也有3条指令,分别如下:
1、建立变换矩阵的指令
Creat-transformation-matrix(Xf,Yf,Zf,Sx,Sy,Sz,Xr1,Yr1,Zr1,Xr2,Yr2,Zr2,a,Tx,Ty,Tz,matrix)
其中,Xf,Yf,Zf是固定点变比的固定坐标;
Sx,Sy,Sz是变比参数;
Xr1,Yr1,Zr1,Xr2,Yr2,Zr2是旋转所绕任意轴的起点与终点坐标;
A是旋转角度。Matrix是返回的4×4矩阵。
null2、积累变换的指令
Accumulate-matrices-3(m1,m2,m)
其中m1,m2是输入矩阵,m是输出矩阵,3个都是4×4矩阵,这条指令执行如下功能:m=m1.m2
3、坐标变换指令
Set-segment-transformation-3(Id,matrix);其中Id是物体的编号,matrix是变换矩阵。这条指令将Id所含的坐标逐一与matrix相乘,从而实现三维几何变换。null3.1.3参数几何变换
前面介绍都是图形几何变换均是基于点的变换。对于用参数表示的图形几何变换仍是基于点的,计算量和存储空间都很大。
1、圆锥曲线的几何变换
圆锥曲线的方程为矩阵表示为简记为XSXT=0null(1)平移变换
平移矩阵为则平移之后圆锥曲线方程为(2)旋转变换
旋转矩阵为则旋转之后圆锥曲线方程为若对圆锥曲线相对(m,n)点做旋转角变换,变换后圆锥曲线矩阵方程为null(3)比例变换
对圆锥曲线相对(m,n)点进行比例变换,比例变换矩阵为变换后的圆锥曲线方程为3.2坐标系统及其变换3.2坐标系统及其变换3.2.1坐标系统
坐标系统的分类:按维度来分,可以分为一维坐标系统、二维坐标系统、三维坐标系统;按坐标轴之间的空间关系分为直角坐标系统、圆柱坐标系统、球坐标系统。其中直角坐标系统用的最多。
圆柱坐标系统与直角坐标系统的关系为球坐标系统与直角坐标系统关系为null世界坐标系(World Coordinate System)
局部坐标系(Local Coordinate System )
观察坐标系( Viewing Coordinate System )
成像面坐标系
屏幕坐标系
null3.2.2规格化变换与设备坐标变换
计算机图形学中,世界坐标系和规格化设备坐标系(Normalized Device Coordinate,NDC)是两个同时使用的坐标系。
世界坐标系是
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
者描述现实世界中的设计对象所用的坐标系,其坐标的范围可以任意大小。规格化坐标系是计算机图形软件描述设计对象所用的介质。图形硬件不同,设备的坐标系也不同。为了使图形软件易于在不同设备之间移植,图形软件并不采用实际的设备坐标,而采用规格化设备坐标。
规格化设备坐标定义x,y方向的变化范围为0~1,从规格化设备坐标到各种图形硬件实际坐标之间的映射由图形软件自动实现。因此使用图形软件的用户均以规格化设备坐标在各种图形输出与显示设备上作图。null世界坐标的范围是无限大。为了使规格化设备坐标上显示的世界坐标系中的物体有一个合适的范围与大小,必须首先对世界坐标系指定显示范围,它通常是个矩形。在世界坐标系中这个矩形称为窗口。在规格化设备坐标系中这个矩形被称为视区(View Port)。图形软件根据窗口与视区的一一对应关系,自动实现从世界坐标系到规格化设备坐标的变换。这种从窗口到视区的变换称为规格化变换(Normalization Transformation)。
1、规格化变换
1)指定窗口的大小与编号
Set-window(N,Xw-min,Xw-max,Yw-min,Yw-max)
N为窗口编号,Xw-min…Yw-max为窗口沿x方向y方向的最小值和最大值,这些参数均用世界坐标。null2)指定视区的大小与编号
Set-viewport(N,Xv-min,Xv-max,Yv-min,Yv-max)
N为视区编号,Xv-min…Yv-max为视区x方向y方向的最小值和最大值,这些参数使用规格化设备坐标。70.5-65-20.7540.250.7(a)窗口的坐标(b)视区的坐标图3.9从a到b的标准化变换null3)选择规格化变换
Select-normalization-transformation(N)
N是规格化变换的编号,也即窗口和视区的编号。
2、窗口操作
1)视野的变换(Zooming)
变换视野的效果改变窗口的4个参数,令
当 变小时,视区内的物体就变大了,否则就变小。前者称为zoom-in(视野变小),后者称为zoom-out(视野变大)
While(zoom-in){Xw-max--;Xw-min++;Yw-max--;Yw-min++;}
While(zoom-out){Xw-max++;Xw-min--;Yw-max++;Yw-min--;}
null2)摇镜头(panning)
效果就像取景框在一张很大的图纸上移动,它也改变4个参数当dx>0时,镜头往右移;dx<0,镜头往左移;当dy>0时,镜头往上移;dy<0,镜头往下移。
3)多重窗口(Multiple Window)
对不同的窗口分别指定视区,就在荧光屏上出现多窗口。
设两条折线p1,p2的坐标存在4个数组x1,y1,x2,y2中,下列指令序列可以实现多重窗口效果。nullSet-window(1,1,9,300,700);
Set-viewport(1,0.1,0.4,0.2,0.8);
Set-window(2,10,13,100,200);
Set-viewport(2,0.6,0.9,0.2,0.8);
Select-normalization-transformation(1);
Polyline(l1,x1,y1);
Select-normalization-transformation(2);
Polyline(l2,x2,y2);0.10.40.60.90.20.8图3.10一个屏幕上多个窗口视区显示null多重窗口的视区还可以重叠,操作内容增加,如重叠层次改变与指定、视区拖动以及大小的改变。这些内容都涉及窗口内容的恢复。除使用帧缓冲外,还需要更多内存来保存非表面层窗口内容,以做恢复之用。下面指令来指定视区的优先级:
Set-Viewport-Input-Priority(NT1,NT2,HL)
NT1、NT2是两个标准化变换的名,HL可选Higher或Lower(Higher意味着NT1优先于NT2,否则NT2优先NT1)。优先级可以传递继承。
3、从规格化坐标(NDC)到设备坐标(DC)的变换
NDC变换成DC(即显示器的像素坐标)变换关系如下:-1-aa0Ny-1Nx-110NDC像素图3.12 NDC到DC的变换关系null其中a=1,Nx=1024,Ny=768。规格化坐标中的点(Xin,Yin)经过平移(dx,dy)和比例变换(Sx,Sy),就可以得到设备坐标系中的点(Xout,Yout)
1)公式若规格化坐标中的两点Xin1和Xin2变换到设备坐标下为Xout1和Xout2,由于从规格化坐标到设备坐标的变化是线性变化,则有null注意3个方面的问题:
(1)要考虑x、y方向上的实际像素数;
(2)规格设备坐标空间具有的几何一致性不一定在设备坐标空间中成立(因设备坐标系中的像素不一定是正方形,例如图3.12中像素高宽比是(Nx-1)/(Ny-1),常用微型计算机像素高宽比为768/1024)
(3)实际应用中规格设备坐标和设备坐标的方向相反。
2)方向
以图3.12为例子,x方向,-1变成0,1变成Nx-1,Sx=(Nx-1)/2,dx=(Nx-1)/2;y方向,a变成0,-a变成Ny-1,Sy=(Ny-1)/(-2a),dy=(Ny-1)/2。
3)设备坐标中像素中心的变换
规格化坐标系中的点变换到设备坐标后应在相应位置的像素中心。nullX方向上,-1变成-0.5,1变成Nx-0.5,Sx=Nx/2,dx=(Nx-1)/2;y方向,a变成-0.5,-a变成Ny-0.5,Sy=-Ny/(2a),dy=(Ny-1)/2。
3.2.3投影变换
1、基本概念
计算机图形软件中所采用的笛卡儿(Cartesian)直角三维坐标系系统,按z轴方向不同分为:
(1)右手系统xzynull(2)左手系统xzy在三维坐标系中,物体上各点都以3个分量(x,y,z)描述,此物体称为三维物体。若将三维物体描述在二维平面上,必须对三维物体进行投影。投影(project)是一种使三维对象映射为二维对象的变换。
project(object(x,y,z)) object(x’,y’)
投影在视域坐标系(也称观察坐标系)内进行,视域坐标系通常为一左手系,下面介绍的投影在左手坐标系内介绍。null投影的要素除投影对象、投影面外,还有投影线。按照投影线的角度不同,有两种基本投影方法:
(1)平行投影(Parallal Projection)
它使用一组平行投影线将三维对象投影到投影平面上。
(2)透视投影(Perspective Projection)
它使用一组由投影中心产生的放射投影线,将三维对象投影到投影平面上。图3.14 两种基本投影P1P2P1P2P1’P2’P1’P2’onull由平行投影方法表现三维对象的图,称为正视图和轴测图。由透视投影方法表现三维对象的图,称为透视图。下面讨论中,假设投影面与xoy面重合,即在投影面上z=0。
2、平行投影变换
按照标准线与投影面的夹角不同,平行投影分为正交平行投影和斜交平行投影两类。
1)正交平行投影(Orthographic P.P.)
投影线与投影面成90度角,一个三维点(x,y,z)正交平行投影法投影到平面xoy上,得到一个二维点(xp,yp)
Xp=x,yp=y,zp=0同理也可以将三维物体正交平行投影到xoz和yoz平面上,分别获得平视图和侧视图。设计中常用正交平行投影来产生三视图,称为正视图。null2)斜交平行投影(Oblique P.P.)
投影线与投影面成a角。一个三维点(x,y,z)以斜交平行投影方法投影到投影面上,形成投影坐标(xp,xp,zp)。斜交平行投影也称轴测投影,所获得图称为轴测图。
3、透视投影变换
设投影中心在z轴负轴上,投影中心c到坐标原点o的距离为d。
为求透视投影变换公式,先列出直线PC的参数化方程:
参数u变化范围0~1,当u=0时,(x’,y’,z’)等于(x,y,z),即P点;当u=1时,(x’,y’,z’)等于(0,0,-d),即C点。因此u值表示直线PC上的位置。nulldoxyzcP’(x’,y’,z’)P(x,y,z)图3.15 透视投影3.3图元输出与输出属性3.3图元输出与输出属性3.3.1二维图元输出
图元是图形软件用于组织和操作画面的最基本的素材。一幅画面有图元组成,图元是一组最简单的、最通用的几何图形或字符。
图形软件中常用的图元有Line(直线段)、Polyline(折线)、Text(字符串)、Fill area(色块)、Polymarker(符号的轨迹)、Move(现行位置的定位)、Cell Array(像素矩阵)、Circle(圆)。null
每种图元都有一系列参数描述,这些参数由两类命令定义:一类是输出图元命令,它描述了图元的种类及最重要、也是变化最频繁的参数,如直线的端点坐标。另一类是图元性质定义命令,它描述了图元的其余性质,如直线的宽度、线型等。
用户定义的二维图元的窗口区到视图区的输出过程如下:
应用程序得到的坐标(UC) 对窗口区进行裁剪(WC)
窗口区到视图区的规格化变换(NDC)
视图区的规格化坐标系到设备坐标系的变换(DC)
调用基本图元生成算法在图形设备上输出图形null输出图元的命令:
(1)move(x,y)
定义当前位置为(x,y)。启动图形软件后当前位置自动定义为(0,0)
(2)line(x,y)
以当前位置为起点,(x,y)为终点画一直线,如果两点重合,则画一点
(3)polyline(n,x_array,y_array)
X_array、y_array为两个一维数组,每个数组长度为n。本命令画一条有n+1个顶点(包括两个端点)的折线。第1个顶点在当前位置,其余n个顶点的位置有x_array和y_array中的值决定。null3.3.2输出属性及其控制
1、图元的输出属性
常见的定义图元属性的命令:
1)直线的属性
(1)线类型
Set_linetype(linetype),其中linetype可以为solid(实线)dotted(点线)dashed(虚线) dotdashed(点划线)
(2)线色彩
Set_line_color_index(pc),其中pc是查色表的地址,通常是一个范围在0~255。
(3)线宽度
Set_line_width(linewidth),其中linewidth是标准线宽的倍数。null2)定义查色表的内容
指令为set_color_representation(ci,R,G,B)
定义地址为ci单元的色彩代码,其中ci为查色表地址,R、G、B分别为红绿蓝的色代码,任何一种颜色都可由R、G、B三原色按不同比例混合而成。最普通的一种取值范围是ci、R、G、B为0~255
3)多边形填色的属性
(1)多边形填色风格
Set_polygon_interior_style(style),style取值范围为Solid(单色)、Hollow(不填色)、Pattern(填图案)
(2)多边形的色彩
Set_polygon_color_index(color)null(3)多边形的图案
Set_polygon_pattern_index(Pid),其中Pid是一个图案的编号
(4)图案内容
Set_pattern_representation(Pid,nx,ny,CP),这条命令将图案的编号Pid和它的内容(放在CP之内)对应起来。CP是一个二维数组,大小为[1,2…,nx][1,2…,ny],每个元素对应一个像素。其中CP描述了一个用像素矩阵表示图案的构成。
(5)图案的位置
Set_pattern_reference_point(xp,yp),确定了图案的左下角点在屏幕坐标上的(xp,yp)null例:将右图所示图案填入
一个顶点坐标在x[1..10]
Y[1…10]中的多边形。
2121首先将图案的编码存放在一个数组pattern中,然后利用上述命令填入多边形。
Pattern[1,1]=1
Pattern[1,2]=0
Pattern[2,1]=0
Pattern[2,2]=1
Set_pattern_representation(1,2,2,pattern)
Set_polygon_interior_style(pattern)
Set_polygon_pattern_index(1)
Set_pattern_reference_point(0,0)
Fill_area(10,x,y)
null4)字符的属性
(1)字型
Set_text_font(tf),其中tf可以取Roman(罗马型)、Greek( 希腊型)、Script(手书型)、Old English(老体)
(2)字符色彩
Set_text_color_index(tc), tc为查色表的地址
(3)字符大小
Set_charsize(width,height),width、height表示字符宽高
(4)字母方向
Set_charnp_vector(dx,dy),dx,dy是字母方向矢量在x,y轴上的投影
(5)字符串的轨迹 set_text_path(dx,dy),字符串的轨迹是一条直线,斜率为m=dy/dxnull5)符号属性
(1)符号种类
Set_marker_type(mt),mt是符号的ASCII编码
(2)符号色彩
Set_marker_color_index(mc),mc是查色表的地址
(3)符号大小
Set_marker_size_scale_factor(ms),ms是字符的缩放比例
上述命令定义图元性质虽然灵活,但很麻烦,需要n条命令才能定义一个图元的n个性质。可以采用组合命令,即使用一个命令来定义一组性质。
组合命令定义分两步完成:1、建立组合表中的值,即将一组性质赋予某输出设备的组合表中的某一地址。2、用编号(即组合表的地址)调用这组性质。
null例子:以直线为例,说明组合命令的定义
(1)建立组合表的值的命令
Set_line_representation(WS,lid,lt,lw,lc),其中WS是图形输出设备编号,lid是性质编号,lt直线种类,lw直线宽度,lc直线色彩
(2)调用这组性质的命令
Set_line_index(li),li是性质编号
Set_line_representation(1,3,dotted,0.5,1)
Set_line_representation(4,3,solid,1,7)
Set_line_index(3)
凡画直线都采用性质3。如编号为1的输出设备被激活,则输出直线性质为点线、0.5粗、1号色彩null3、属性的查询
属性查询指令的功能是将基元的某个性质赋给变量返回。
Inquire 基元的类型和性质(变量)
例:inquire_linetype(ilt)
这条指令功能是把当前直线的种类赋给变量ilt返回。3.3.3三维图元的输出3.3.3三维图元的输出很多图形软件中,三维图元的输出只是在原来二维图元输出命令的基础上增加一个后缀3,例如move的三维形式move-3(x,y,z),命令line的三维形式line-3(x,y,z)等等。
实际上,要在图形输出设备上是输出一个三维图元,必须进行投影变换。
视域坐标系统(viewing coordinate system,VCS)投影面与面重合,Z轴正向指向要表达的物体,透视投影的中心位于Z轴的负轴上。null将三维图元输出到图形设备上,必须经过以下步骤:
1、定义一个视域坐标系统VCS,为此需定义如下数据
(1)VCS坐标原点
(2)VCS的Z轴方向
(3)VCS的y轴方向
2、将投影物体的世界坐标变换为视域坐标
在完成了前2个步骤后,投影就可以进行了。然后将二维视域坐标转换为规格化坐标,便可在屏幕上显示了。
3、选择平行投影或透视投影进行投影变换,使VCS三维对象变为VCS在XOY平面上的二维对象。
4、在VCS的XOY平面上定义一窗口,并定义相应的视区,进行标准变换。null世界坐标WCS视域坐标VCS3D
vcs2D
vcs标准设备坐标
NDC视域变换投影变换标准化变换图3.21 三维坐标变换全过程