计算机图形学_第十章_三维观察与裁剪_56分解
合集下载
计算机图形学CG08-三维观察

参数
值
投影类型 平行投影
VRP(WC) (0,0,0)
VPN(WC) (0,0,1)
VUP(WC) (0,1,0)
PRP(VRC) (0.5,0.5,1)
窗口(VRC) (-0.5,1.5,0.5,1.5)
参数
值
投影类型 平行投影
VRP(WC) (0,0,0)
VPN(WC) (1,1,1)
VUP(WC) (0,1,0)
22
8.3.2 视见体
(1)建立窗口
在投影平面uv上 只有在窗口内的图形才能在视区中显示 指定参数(umin,vmin)(umax,vmax) 窗口中心CW不一定落在观察参考点VRP上
23
8.3.2 视见体
(2)生成观察空间
投影参考点PRP: Projection Reference Point 确定投影中心或投影方向 透视投影:COP = PRP 平行投影:投影方向DOP = 窗口中心CW-PRP
x
y
z
x
x
y
y
z
z
0 0 0
1
35
8.4 投影举例
待投影的单位立方体
顶点3的坐标(1,1,1)
缺省投影参数
参数
值
投影类型
平行投影
VRP(WC) (0,0,0)
VPN(WC) (0,0,1)
VUP(WC) (0,1,0)
PRP(VRC) (0.5,0.5,1)
窗口(VRC) (0,1,0,1)
投影中心(COP: Center of Projection)
视觉系统 — 观察点、视点 电影放映机 — 光源
投影面
不经过投影中心 平面-照相机底片 曲面-球幕电影,视网膜
计算机图形学课件-06_三维观察

0 0
0 sin
0
cos
0
cos sin
0
0 0 1
0 0 0
0 0
0 0
1 0
0 1
0
0 0 1
z
z2
O xθ
R
O2
y2
x2
P
y
6.2.2 世界坐标系到观察坐标系的变换
(2)变换过程
③绕x3(x2)轴的旋转变换
1
0
0
0 1 0
0 0
M3
0 0
cos( ) sin( )
sin( ) cos( )
1 0 0 0
TH
0 0
1 0
0 0
0 0
(3)使H面沿z方向平移一段距离-z0 0 0 0 1
Z
Z
O
Y
主视图(V面) X
俯视图(H面)
侧视图 (W面)
Y
Y
其综合变换式为:
x'
x 1 0 0 0 1 0
0 0 1 0 0 0 x
y' z'
TH
y z
0 0
1
1 0
1 0 0
0 1 0
0 0 0 0
cos sin
sin cos
0 0
0
0
0
1 0 0
0 1
z y3
O xθ
R
z3
O3
x3
P
y
6.2.2 世界坐标系到观察坐标系的变换
(2)变换过程
④关于y3O3z3面的反射变换
1 0 0 0
M4
0 0
1 0 0 0 1 0
z
0
精品课件-计算机图形学(张宁蓉)-第10章

新增了一些函数, 使开发者可以直接使用AutoCAD中的对象和反
应器, 进行更底层的开发。
第 10
章 2) Active X/VBA
AutoCAD系统的二次开发
提供Automation服务的软件组件通过标准接口能够对外开放
它的特定功能, 以便于如Visual Basic一类的编程工具对其进行
访问。 由于AutoCAD拥有Active X Automation接口, 因此用户
进行客户化开发和编制菜单及通过简单的机制增加命令。
AutoLISP虽然容易学会, 但因继承了LISP语言的编程规则而导致
繁多的括号, 所以不利于被编辑。 AutoLISP不是面向对象的
语言, 因此很难用于开发大型应用程序。
第 10
AutoCAD系统的二次开发
章
Visual LISP是一种面向对象的开发环境, 是AutoLISP的扩
应用程序有机地联系在一起, 以便充分发挥Windows环境下各种
应用程序协同工作的能力。
第 10 章
AutoCAD系统的二次开发
2)
实现参数化绘图是CAD软件开发过程的核心任务之一。 所谓
参数化绘图, 就是将图形尺寸与一定的设计条件(或约束条件)相
关联。 当设计条件发生变化时, 图形尺寸也随之更新。
第 10 章
AutoCAD系统的二次开发
第10章 AutoCAD系统的二次开发
10.1 基于AutoCAD的计算机辅助设计 10.2 AutoLISP语言 10.3 Visual LISP语言 10.4 VBA语言 10.5 ObjectARX应用程序
第 10 章
AutoCAD系统的二次开发
10.1 基于AutoCAD
计算机图形学(三维几何变换)

• 设备坐标系:在输出设备上建立的坐标系是设备坐标系, 输出设备如果是屏幕就是屏幕坐标系。有可能是三维的 如机械手运动轨迹的三维坐标系。我们常用的是屏幕坐 标系。
有些图形系统,对设备坐标系进行了规范化,将坐标 范围限定在区间{x, y, z | 0≤x≤1, 0≤y≤1, 0≤z≤1}内,称为 标准化设备坐标系
Y
P’(x’,y’,z’) P(x,y,z)
sin cos 0 0 x 0 y (3) 1 z
X
x cos y sin z 0
Z
旋转的图示
2009-2010-2:CG:SCUEC
以图形中心为中心进行缩放的步骤
2009-2010-2:CG:SCUEC
18
以图形中心为中心的缩放变换
以图形中心为中心的缩放 然后再对每一点按照式(*)作变换. 最后再沿x, y和z方向平移xp, yp和zp,把经过缩放 的图形移回原处.
(xp,yp,zp)
以图形中心为中心进行缩放的步骤
2009-2010-2:CG:SCUEC
A
放缩
17
2009-2010-2:CG:SCUEC
以图形中心为中心的缩放变换
为了使缩放变换后的图形仍在原位臵附近,可另 以图形中心为中心的缩放 外定义一个相似中心点(xp,yp,zp). 先把整个图形沿x, y和z方向平移–xp, –yp和–zp, 相似中心就移到了坐标原点.
(xp,yp,zp)
视口
2009-2010-2:CG:SCUEC
8
Yv
世界坐标系
Y
y2 o x y z x2
观察坐标系
y1
X
有些图形系统,对设备坐标系进行了规范化,将坐标 范围限定在区间{x, y, z | 0≤x≤1, 0≤y≤1, 0≤z≤1}内,称为 标准化设备坐标系
Y
P’(x’,y’,z’) P(x,y,z)
sin cos 0 0 x 0 y (3) 1 z
X
x cos y sin z 0
Z
旋转的图示
2009-2010-2:CG:SCUEC
以图形中心为中心进行缩放的步骤
2009-2010-2:CG:SCUEC
18
以图形中心为中心的缩放变换
以图形中心为中心的缩放 然后再对每一点按照式(*)作变换. 最后再沿x, y和z方向平移xp, yp和zp,把经过缩放 的图形移回原处.
(xp,yp,zp)
以图形中心为中心进行缩放的步骤
2009-2010-2:CG:SCUEC
A
放缩
17
2009-2010-2:CG:SCUEC
以图形中心为中心的缩放变换
为了使缩放变换后的图形仍在原位臵附近,可另 以图形中心为中心的缩放 外定义一个相似中心点(xp,yp,zp). 先把整个图形沿x, y和z方向平移–xp, –yp和–zp, 相似中心就移到了坐标原点.
(xp,yp,zp)
视口
2009-2010-2:CG:SCUEC
8
Yv
世界坐标系
Y
y2 o x y z x2
观察坐标系
y1
X
三维观察(计算机图形学)

2009-2010-2:CG:SCUEC
11
平行投影视见体的规范化
Step 3:把Step的长方体变为规范长方体,变换矩阵为s3;
Step 4:分别沿 和 轴的负方向平移一个单位的变换 矩阵为s4.
因此由任意平行六面体视见体到规范化长方体视见体的变换为:
2009-2010-2:CG:SCUEC
12
yq ywq
2009-2010-2:CG:SCUEC
19
连续变换的处理
设在世界坐标系中的变换合并成一个4×4矩阵T1, 变换为
( x , y , z ,1) T ( x , y , z ,1)
T 1
T
T
(5.13)
( x , y , q ) T ( x , y , z ,1)
q q 2
T2是一个3×4的矩阵,投影变换是
T
(5.14)
T3是3×3矩阵,窗口至视区的变换是
(x , y ,q ) T (x , y ,q)
T vq vq v 3 q q
T
T
(5.15)
T
到物理设备坐标的变换式为
(x , y ,q ) T (x , y ,q )
sq sq s 4 vq vq v
(5.18)
如果不需要作投影变换,例如显示对象本身是二 维的,或是平行投影,那么式(5.18)可直接写成
x s x sq , y s y sq
21
2009-2010-2:CG:SCUEC
计算机图形学
结 束
平行投影时的视见体
图B
透视投影时的视见体
8
2009-2010-2:CG:SCUEC
投影方程
平行投影时,规范视见体是由以下平面方程构成的 长方体如图 ( a)所示 透视投影时,规范视见体可以是由以下平面方程构 成的棱台如图 (b)所示
计算机图形学裁剪技术

1、将直线的两端点P1、P2编码得:C1、C2; 2、判别 根据C1和C2的具体值,可以有三种情况: (1)C1=C2=0,表明两端点全在窗口内,因而整个线段也在窗内 ,应予保留。 (2)C1&C2≠0,即C1和C2至少有某一位同时为1,表明两端点必定 处于某一边界的同一外侧,因而整个线段全在窗外,应予舍弃。 (3)不属于上面两种情况,均需要求交点。 3、求交点 (1)令窗外端点为P1,如果窗外点不是P1,则P1和P2交换端点; (2)保留窗内端点P2到暂存器里; (3)对P1编码为C1; (4)用中点公式求出中点 ,并编码得C; (5)按照中点算法的求交规则: 若P1和P同侧,移动P1点;if((C1&C)!=0) P1=P; 否则,移动P2点。 else P2=P; (6)流程转(3),直到P1和P2相差一个给定误差时:令交点为P2 ,取出暂存器的端点赋给P1,然后转向流程1。
当Q为空集时,线段AB不可能在窗口中有可见线段。 当Q不为空集时,Q可看成是一个一维窗口
直线段裁剪
Liang-Barsky裁剪算法
ymax
P4
P3
B
U
S
P1
A T
ymin
P2
存在可见线段的充要条件
AB RS TU 不为空集
L x R min
xmax
AS是一维窗口TS中的可见部分
直线段裁剪
Liang-Barsky裁剪算法
AB有可见部分的充分必要条件也可表示为
max[ xmin , min( x A , x B ), min( xT , xU )] min[ xmax , max( x A , x B ), max( xT , xU )]
计算机图形学 图形裁剪

弃线段还是改变交点的参数.
一 当p<0时,参数r用于更新u0: u0=max u0,rk 二 当p>0时,参数r用于更新u一: u一=min u一,rk 三 如果更新了u0或u一后,使u0>u一,则舍弃该线段 四 当p=0且q<0时,因为线段平行于边界并且位于边界之外,则舍
弃该线段.
四、p、q的四个值经判断后,如果该线段未被舍弃,则裁
16
Cohen-Sutherland裁剪算法
求交
将两个端点的编码CtCbCrCl进行逻辑或操作, 根据其结果中一的位置来确定可能相交的窗口边 求交按照固定的顺序来进行 左右下上或上下右左 一条线段与窗口最多求交四次
A 一0一0 FD
E C B 0一0一
17
Cohen-Sutherland裁剪算法
1001
1000
1010
0001
0000
0010
utherland裁剪算法
先排除简单情形:
若某线段两个端点的四位二进制编码全为0000 线段位于窗口内,显示之
若对两端点的四位二进制编码进行逻辑与运算 & 结果
不为0 线段位于窗口外,直接舍弃
1001
不仅在于求出新的顶点,删去界外顶点,还在于形成 正确的顶点序列
36
多边形的描述方式
多边形可以描述为一组顶点按一定顺序连接而成的 有向点列
一般可将多边形的顶点按逆时针方向顺序形成有向 线段,进而连接成一个环来描述多边形的组成
数据结构上,可用链表结构来描述
2
1
3 4
37
多边形裁剪的特点
多边形的各条边是顺次连接 直线裁剪
10
Cohen-Sutherland裁剪算法
一 当p<0时,参数r用于更新u0: u0=max u0,rk 二 当p>0时,参数r用于更新u一: u一=min u一,rk 三 如果更新了u0或u一后,使u0>u一,则舍弃该线段 四 当p=0且q<0时,因为线段平行于边界并且位于边界之外,则舍
弃该线段.
四、p、q的四个值经判断后,如果该线段未被舍弃,则裁
16
Cohen-Sutherland裁剪算法
求交
将两个端点的编码CtCbCrCl进行逻辑或操作, 根据其结果中一的位置来确定可能相交的窗口边 求交按照固定的顺序来进行 左右下上或上下右左 一条线段与窗口最多求交四次
A 一0一0 FD
E C B 0一0一
17
Cohen-Sutherland裁剪算法
1001
1000
1010
0001
0000
0010
utherland裁剪算法
先排除简单情形:
若某线段两个端点的四位二进制编码全为0000 线段位于窗口内,显示之
若对两端点的四位二进制编码进行逻辑与运算 & 结果
不为0 线段位于窗口外,直接舍弃
1001
不仅在于求出新的顶点,删去界外顶点,还在于形成 正确的顶点序列
36
多边形的描述方式
多边形可以描述为一组顶点按一定顺序连接而成的 有向点列
一般可将多边形的顶点按逆时针方向顺序形成有向 线段,进而连接成一个环来描述多边形的组成
数据结构上,可用链表结构来描述
2
1
3 4
37
多边形裁剪的特点
多边形的各条边是顺次连接 直线裁剪
10
Cohen-Sutherland裁剪算法
计算机图形学_三维视图

视图过程的这部分操作也称为规范化变换(normalization transformation) 用标架中的变换实现
v
projection of Up vector
VUP Up vector
Look vector
照相机参数
n
照相机的默认位置在原 点,指向z轴负向 所期望的位置称为视图 参考点VRP 照相机定向
u
Position
视图平面法向n(viewplane normal, VPN) 视线向上的方向VUP (view-up vector) VUP在投影平面的投影得 到视线向上方向v
VPN & VUP
VPN给出投影面的方向,即平面的法向 只有平面的定向不能完全确定照相机的定向 照相机还可以绕VPN方向旋转 只有给出了VUP,才完全确定了视图的向上方向
投影平面与基准坐标轴交点数
投影线与投影平面的夹角
投影平面是否平行于主平面
投影
投影的要素包括投影对象、投影中心、投影平 面、投影线和投影。要作投影变换的物体称为 投影对象;在三维空间中,选择一个点,记这 个点为投影中心;不经过这个点再定义一个平 面,记这个平面为投影平面;从投影中心向投 影平面引任意多条射线,记这些射线为投影线; 穿过物体的投影线与投影面相交,在投影面上 形成物体的像,这个像记为三维物体在二维投 影面上的投影。
斜俯视图
基准面principal faces(主平面)
在诸如建筑业等实际应用中,所观察的 对象通常由许多平坦面构成。 这些面中任一个都可以认为是一个基准 面,从而进行定位
对于规则物体,例如房屋,按照通常的方式 可以定义前、后、左、右、顶、底等面 许多对象上都有几个面相交于直角,从而可 以得到三个正交的方向,称为基准方向
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
透视投影
透视投影图的特点是透视缩短和灭点:
•透视缩短:指物体离投影中心越远,物体所表现的长度越短的现象。 •灭点:一束平行线好像汇聚在一点的错觉是透视投影的另一个性质,此
点称为灭点。
•主灭点:是指平行线与三条主坐标轴之一的交点。
透视投影
•一点透视:投影平面与坐标系的一个平面平行。 •二点透视:投影平面与坐标系的一根坐标轴平行而与另两根
x p x, y p y, zp 0
对于斜投影:
x p x L cos y p y L sin
L z * ctg
x p x z ( L 1 cos ) L1 ctg y p y z ( L 1 sin )
1 0 M par 0 0 0 L1 cos 1 L1 sin 0 0 0 0 0 0 0 1
斜投影
投影方向与投影面不垂直.常用的两种斜投影是斜等测和斜二测。
•当投影方向与投影面成45°用时,得到的是斜等测,AB=A’B’。 •当投影方向与投影面成arctan பைடு நூலகம்2)的角度时,得到的是斜二测,AB=2A’B’
。
平行投影变换
由于正投影时空间的点均垂直地投影到投影平面上 ,所以可很方便地得到变换方程。
L
三维观察空间
•在显示物体的过程中,我们要像上一节介绍的那样定义
一个投影平面和一个投影中心或投影方向,将三维物体 投影到二维投影面上
•在投影之前对这个物体进行裁剪.把物体上我们不关心
的部分去掉,留下我们感兴趣的那部分,并将这部分投 影到投影面上显示出来。
察空间以外的物体裁剪掉,只对落在这个空间内的物体 作投影变换并予以显示。
程称为投影变换。
平面几何投影的分类
透视投影及平行投影
•透视投影是由汇聚于一点(称为投影中心)的投影线把
物体投影到某个投影面上;
•平行投影是指用平行投影线把物体投影到某个投影面上
透视投影和平行投影分类
透视投影和平行投影可分类 如下:
透视投影
投影中心为(0,0,d),投影平面为z=0,待投影的三维空 间的点为P(x,y,z),现在要求出在投影平面上的投影点。 由投影中心及P同坐标平面的垂线构 成一个三棱椎。则有:
M
per
1 0 0 0
0 1 0 0
0 0 0 1 d
0 0 0 1
透视投影的特性
•远处的物体比近处的物体的投影要小。 •这种效应所产生的视觉效果十分类似于照相系统和人的
视觉系统。
•与平行投影相比,透视投影的深度感更强,看上去更加
真实,但透视投影不能真实地反映物体的精确尺寸和形 状。
观察空间与视见体
我们需要在观察平面上指定一个观察窗口。观察窗口 的作用与二维图形变换中窗口的作用相似。窗口内的部 分将被映射到视图区,而窗口外的部分将不被显示。
观察空间与视见体
•投影中心与投影方向由投影参考点(PRP:Projection Reference Point)确定。对透视投影
正投影
•正投影根据投影面与坐标轴的夹角又可分成两类:三视
图和正轴测 。
•当投影面与某一坐标轴垂直时,得到的投影为三视图,
这时投影方向与这个坐标轴的方向一致。否则,得到的 投影为正轴测 。
正轴测
正轴测有等轴测、正二测和正三测三种。
•当投影面与三个坐标轴之间的夹角都相等时为等轴测 •当投影面与两个坐标轴之问的夹角相等时为正二测 •当投影面与三个坐标轴之间的夹角都不相等时为正三测
x' y ' d , z' 0 x y dz
d 1 x ' x ( ) x ( ) dz 1 z / d d 1 ) y( ) y ' y( d z 1 z / d z ' 0
透视投影
写成齐次坐标表示 :只要给定一个点的齐次坐标表示(x, y, h),就能 得到这个点的二维笛卡尔直角坐标(x/h, y/h)。
•这就需要在用户坐标系中指定一个观察空间,将这个观
观察坐标系
•我们可以依赖于投影平面(照相机的底片)建立一个三维坐标系uvn, 称为观察坐标系(VRC:View Reference Coordinate)。
•投影平面也称观察平面(VP:View P1ane),它由法向(VPN:View P1ane Normal)和其上的一点——观察参考点(VRP:View Reference Point)唯一
坐标轴成一定角度。
•三点透视:投影平面与坐标系的三根坐标轴均有一定的角度
三点透视用得不多,主要原因是它难于构造。
平行投影变换
•平行投影不具有透视缩小性,能精确地反映物体的实际
尺寸。
•平行投影可根据投影方向与投影面的夹角分成两类:正 投影和斜投影。当投影方向与投影面的夹角为90°时,得
到的投影为正投影,否则为斜投影 。
确定 。
•我们以VRP为坐标原点,VPN为n轴
建立观察坐标系uvn,那么观察坐标 系的uv平面就与投影平面重合了。
观察坐标系
为了确定u轴与v轴,用户需另外指定观察正向VUP,它是用来标志物 体朝向(朝上的方向)的矢量,类似于指定照相机向上的方向。 v轴是 VUP在投影平面上的投影 。而u轴可以通过v与n的叉乘得到:即u=v×n。 这样,u、v、n构成了一个右手坐标系,即观察坐标系VRC。
Lecture 10
三维观察与裁剪
概述
三维观察变换的情况较复杂,因为在三维情况下,可在 空间选择各种不同的观察点及投影方式。这就如同在日 常生活中观察物体一样,我们可站在不同地点、从不同 的方位,对物体的前、后、侧面进行观察,以便全面地 了解物体形状及结构。
平面几何投影
投影与投影变换
•投影:是将n维的点变换成小于n维的点。 •投影变换:将三维空间中的物体变换到二维平面上的过
x' 1 ' 0 y 0 0 z 1 0 d 0 0 0 x 1 0 0 y 0 0 0 z 1 0 1 1 d
因此透视变换矩阵为(变换后规整为规格化齐次坐标):