6.2三维图形投影变换技术1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

任务: 三维空间的点变换成二维空间的点 任务:将三维空间的点变换成二维空间的点。 变换成
•如何将三维空间的点 如何将 •变换成二维空间的点 变换成 维空间的点?
投 影
5.2三维形体在二维平面上的投影
DEF:图形输出的设备都是二维的, 图形输出的设备都是二维的, 图形输出的设备都是二维的 要使三维形体输出显示在二维设备上 三维形体输出显示在 要使三维形体输出显示在二维设备上 就需要将三维坐标表示的几何形体 二维坐标表示的图形, 变换成 二维坐标表示的图形,这种 变换称为投影变换 变换称为投影变换 .
0 1 0 0 0 1 0 0 0
0 0 1
例1:已知某立方体棱长 :
均为100,试从(0,0, ,试从( , , 均为 400)处向平面 )处向平面O-XY作透 作透 视投影, 视投影,求出个顶点投影后 的坐标并绘制投影图。 的坐标并绘制投影图。 立体图形顶 点坐标矩阵
0 0 100 100 0 0 100 100 100 0 0 100 100 0 0 100 100 100 100 100 0 0 0 0 1 1 1 1 1 1 1 1
1 0 0
0
透视投影变换矩阵为: 透视投影变换矩阵为 T2=
0 0 0 -1/d 0 0 1 0 0 0 0 1
同理,如果视点在 轴坐标 轴坐标( 同理,如果视点在x轴坐标(d,0,0) ) 向平面O-YZ作透视投影 向平面 作透视投影
0 0 0 -1/d
透视投影变换矩阵为: 透视投影变换矩阵为 T3=
x’=x*d/(d-z) y’=y*d/(d-z) z’=0
程序设计题: 程序设计题:
(1)按照前面讲的思路,编写程序显示例 所示立方 )按照前面讲的思路,编写程序显示例1所示立方 体从视点( 平面作的透视图。 体从视点(0,0,d)处向 )处向0-XY平面作的透视图。 平面作的透视图 要求(视点位置d可以任意输入 可以任意输入) 要求(视点位置 可以任意输入) (2)设三棱锥各顶点坐标是 ) (0,0,20)(20,0,20)(20,0,0)(10,20,10)试编程绘制 试编程绘制 从视点(0,0,120)对平面 对平面O-XY的一点透视图 从视点 , 对平面 的一点透视图
1 0 0 0 0
(x y z 1)*
0 1wk.baidu.com0
=(x’y’z’1)
0 0 0 -1/d 0 0 0 1 0 0 1 0 0
其中:T1=
0 1 0
0 0 0 -1/d 0 0 0 1
T1:为透视点(0,0,d),透视平面 透视平面 :为透视点 O-XY平面的透视投影变换矩阵 平面的透视投影变换矩阵
如果视点在y轴坐标( 如果视点在 轴坐标(0,d,0)向平 轴坐标 ) 面O-XZ作透视投影 作透视投影
•x’=x •y’=0 •z’=z
1 0 0 0 0
P(x,y,z) P’(x’,y’,z’)
(x y z 1)*
0 0 0
=(x’y’z’1)
0 0 1 0 0 0 0 1
例1:已知三棱锥各顶点坐标为 :已知三棱锥各顶点坐标为(0,0,20),
(20,0,20), (20,0,0), (10,20,10)试从 轴 试从Z轴 试从 方向向平面O-XY作平行投影,求出各顶点投 作平行投影, 方向向平面 作平行投影 影后的坐标并绘制平行投影图 平行投影图。 影后的坐标并绘制平行投影图。
P’(x’,y’,0)
∆GEF与∆OIF相似 与 相似
z
由左图可知: 由左图可知: ∆PEF与 ∆P’IF相似 与 相似 ∆OIF与∆GEF相似 与 相似
P’(x’,y’,0)
x’=x*d/(d-z) x/x’=(d-z)/d y/y’=(d-z)/d y’=y*d/(d-z) z’=0
写成矩阵形式(计算验证 写成矩阵形式 计算验证) 计算验证
投影视点E-观察者的眼睛 投影面xy面 透视投影(投影视点 观察者的眼睛 投影面 面) 投影视点 观察者的眼睛,投影面
投影方法:从视点E经过形体的各个点,向投影平 投影方法 视点 经过形体的各个点, 经过形体的各个点
画射线,这些射线和投影面o-xy的交点形成投影像 的交点形成投影像 面画射线,这些射线和投影面 的交点 (也就是具有真实立体感的二维图形)。
6.2三维图形投影变换技术 6.2三维图形投影变换技术
南京农业大学 谢忠红
三维图形最重要的三个课题。 三维图形最重要的三个课题。
(1) 如何定义三维形状?——几何造型技术 如何定义三维形状? 几何造型技术
(2)如何作为二维图像在图像显示器等输出 如何作为二维图像在图像显示器等输出 装置上表示出来?——三维投影技术 装置上表示出来 三维投影技术 (3)为了增强三维图形在二维显示器上显示 为了增强三维图形在二维显示器上显示 的立体感,还有必要对其进行消隐计算 的立体感,还有必要对其进行消隐计算。
d c a b
思路点拨: 思路点拨:
(1)建立相应的数据结构表示该三维形体 建立相应的数据结构表示该三维形体 (2)根据一点透视投影的公式将三维坐标 根据一点透视投影的公式将三维坐标 二维坐标
(注意这里的坐标均为世界坐标系) 注意这里的坐标均为世界坐标系)
(3)将二维世界坐标转换为屏幕坐标,再 将二维世界坐标转换为屏幕坐标, 将二维世界坐标转换为屏幕坐标 根据边表画出对应的边。 根据边表画出对应的边。
设平行投影方向为Z轴 投影面为 设平行投影方向为 轴,投影面为o-xy面, 面 则空间中任意一点P(x,y,z)投影到 投影到o-xy面上 则空间中任意一点 投影到 面上 获得点P’(x’,y’,z’)的关系很显然是 获得点 的关系很显然是
•x’=x •y’=y •z’=0
p(x,y,z)
P’(x’,y’,z’)
P(x,y,z)
(x y z 1)*
0 1 0
=(x’y’z’1)
0 0 1 0 0 0 0 1
平行投影方向为Y轴 投影面为 平行投影方向为 轴,投影面为o-xz面, 面
则空间中任意一点P(x,y,z)投影到 投影到o-xz面上获 则空间中任意一点 投影到 面上获 得点P’(x’,y’,z’)的关系是 得点 的关系是
•x’=x •y’=y •z’=0 用矩阵表示: 用矩阵表示:
1 0 0 0 0
(x y z 1)*
三维坐标
0 1 0
=(x’y’z’1)
投影后的 二维坐标
0 0 0 0 0 0 0 1
变换矩阵
•投影方向:x轴,投影面 面 投影方向: 轴 投影面yz面 投影方向 •投影方向:y轴,投影面 面 投影方向: 轴 投影面xz面 投影方向 •投影矩阵为多少? 投影矩阵为多少? 投影矩阵为多少
0 0 20 1 20 1 0 1
d c a b
20 0 20 0
10 20 10 1
•编程题: 编程题: 编程题
•已知三棱锥各顶点坐标是 已知三棱锥各顶点坐标是(0,0,20) (20,0,20) 已知三棱锥各顶点坐标是 (20,0,0) (10,20,10)试编程绘制从 轴向平面 试编程绘制从Z轴向平面 试编程绘制从 轴向平面O-XY 作平行投影图. 作平行投影图
透视变 换矩阵
变换后顶点地 二维坐标矩阵
=
1 0 0 0
计 算
*
0 1 0 0 0 0 0 -1/400 0 0 0 1
=
出 结 果
投影的特征: 投影的特征 y/y’=(d-z)/d x/x’=(d-z)/d 由投影公式可知: 由投影公式可知: |Z|越大,x’,y’就越小。 越大, 就越小。 越大 就越小 即:远处的物体比近处物体的投影要小。 远处的物体比近处物体的投影要小。
前面讲的内容解决了如何在计算机中定义一个立体形体, 前面讲的内容解决了如何在计算机中定义一个立体形体 ,下面 我们来解决第二个问题: 我们来解决第二个问题:
•如何将三维形体作为二维图像 如何将三维形体作为二维图像 如何将三维形体作为二 •在图像显示器等输出装置上 在图像显示器等输出装置上 在图像显示器 •表示出来? 表示出来? 表示出来
•平行投影方向为 轴,投影面为 平行投影方向为x轴 投影面为o-yz面, 平行投影方向为 面
则空间中任意一点P(x,y,z)投影到 投影到o-yz面上获得 则空间中任意一点 投影到 面上获得 点P’(x’,y’,z’)的关系是 的关系是
•x’=0 •y’=y •z’=z
0 0 0 0 0
P’(x’,y’,z’)
二维显示器显示的立体图形
n
m
DEF:投影就是将三维坐标系下的图形坐标转换为 投影就是将三维坐标系下的图形坐标转换为 二维坐标系下的坐标: 二维坐标系下的坐标: 即将(x,y,z)------(x,y) 或 (y,z)或 (x,z) 或
•如何实现投影呢 如何实现投影呢? 如何实现投影呢
投影的实现
平行投影 透视投影
投影方向: 轴 投影面o-xy面 平行投影(投影方向:z轴,投影面 面)
投影方法:从被投影的形体的各个点,(沿投影 投影方法:从被投影的形体的各个点, 沿投影
方向)向投影平面画平行线, 方向 向投影平面画平行线,这些平行线和投影面的 向投影平面画平行线 交点形成投影像。 交点形成投影像。
d c a b
思路点拨: 思路点拨:
(1)建立相应的数据结构表示该三维形体 建立相应的数据结构表示该三维形体 (2)根据平行投影的公式将三维坐标 二 根据平行投影的公式将三维坐标—二 根据平行投影的公式将三维坐标 维坐标 注意这里的坐标均为世界坐标系) (注意这里的坐标均为世界坐标系) (3)将二维世界坐标转换为屏幕坐标,再 将二维世界坐标转换为屏幕坐标, 将二维世界坐标转换为屏幕坐标 根据边表画出对应的边。 根据边表画出对应的边。
如何得到一点透 视投影的坐标呢? 视投影的坐标呢?
一点透视投影的变换矩阵及特征
假设视点 在 轴上其坐标为 轴上其坐标为(0,0,d) 假设视点F在Z轴上其坐标为 视点 向平面O-XY作透视投影 平面 作透视投影
P是三维形体上的任意一点 是三维形体上的任意一点
由左图可知: 由左图可知: ∆PEF与 ∆P’IF相似 与 相似
相关文档
最新文档