三维投影变换的MATLAB实现

三维投影变换的MATLAB实现
唐飞;杨伟;查长礼
【摘 要】三维图形变换需要对形体顶点的齐次坐标矩阵进行复合计算,计算繁琐且变换过程晦涩抽象,使用传统的程序设计语言实现图形变换的可视化非常困难.因为在三维图形变换中引入MATLAB工具,利用其强大的矩阵运算能力和丰富的图形处理能力,能够快速准确地计算矩阵和输出图形,清晰直观地展现图形变换的方法和过程.
【期刊名称】《安徽理工大学学报(自然科学版)》
【年(卷),期】2016(036)002
中国养老金发展报告2012【总页数】4页(P36-39)
【关键词】三维图形变换;矩阵;MATLAB;投影;计算机图形学
【作 者】唐飞;杨伟;查长礼
【作者单位】安庆师范学院物理与电气工程学院,安徽安庆246133;安庆师范学院物理与电气工程学院,安徽安庆246133;安庆师范学院物理与电气工程学院,安徽安庆246133
【正文语种】中 文中国盐业协会
【中图分类】TH126.2
几何图形是CAD系统中的基本元素,无论以何种方式建立的模型,最终都需要转换为几何图形进行显示和输出。几何图形由顶点坐标、顶点间的拓扑关系和组成图形的线面模型共同决定[1]。图形变换是计算机图形处理的基础,是计算机图形学的重要组成部分,图形的处理、显示和形体构造等都需要使用到图形变换。图形变换的实质是对图形顶点的坐标进行变换,这种变换不改变图形各元素的属性和它们之间的拓扑关系,仅改变各点的坐标。
三维图形变换包括比例变换、对称变换、错切变换、平移变换、旋转变换、投影变换和透视变换等基本变换,更复杂的变换可以通过基本变换组合而成。每一个变换都可以表示为矩阵计算的形式,通过矩阵的相乘构造更复杂的变换[2]。在图形变换中需要进行大量的矩阵运算,计算繁琐且变换过程晦涩抽象,使用C语言等传统的计算机语言实现可视化程序
设计十分困难。因此在图形变换中使用MATLAB软件,利用其强大的矩阵运算能力和丰富的图形处理能力,快速准确地进行矩阵计算和图形输出,直观地展现图形变换的方法和过程。马克吐温介绍
三维空间的点具有三个坐标,可以用矩阵的行向量[x y z]或列向量[x y z]T来表示,称为点的位置向量,点的位置向量的集合构成位置矩阵。矩阵记录了三维空间的形体的顶点坐标信息,可以由此构建三维形体的数学模型。
为了对三维形体进行图形变换,需要引入齐次坐标的概念。将n维空间的点用n+1维坐标表示,即为该点的齐次坐标。例如将点的三维坐标(x, y, z)表示为四维坐标(H×x, H×y, H×z, H),当H=1时为齐次坐标的规格化表示形式[3]。齐次坐标为图形变换提供统一的矩阵运算基础,同时也可以方便地表示无穷远点等通常难以处理的信息。
空间点的三维坐标(x, y, z)使用齐次坐标的规格化表示为(x, y, z, 1)。坐标变换可以对点的齐次坐标集合构成的矩阵进行乘法运算来实现,形如[x’, y’, z’, 1] = [x, y, z, 1]×T,T为变换矩阵,得到变换后的坐标矩阵。三维图形变换就是对图形顶点的坐标进行矩阵变换,变换矩阵T是一个4×4的矩阵,形如的形式。调节矩阵的各元素值就可以实现对三维图形的比例、
对称、错切、平移、旋转、投影和透视等变换。
三维图形变换矩阵T从功能上可以分为4个子矩阵,子矩阵实现对图形的比例、对称、错切、旋转等变换,子矩阵[p q r]T实现对图形的透视变换,子矩阵[l m n]实现对图形的平移变换,子矩阵[s]实现对图形的整体比例变换。无论是图形的基本变换还是复合变换,都可以由变换矩阵的运算来实现,通过矩阵运算的连续组合还可以构造出更多更复杂的变换形式。
在CAD系统的图形显示和输出中,三维形体需要投影到二维平面上,才能将图形在屏幕上显示和打印输出。“投影”是三维形体的二维表示方法,投影变换能够将三维形体投射到平面上,生成二维平面图形。通常使用的投影图主要有三视图、类似“三维”性质的轴测图和立体感强的透视图[4]。通过MATLAB软件进行矩阵运算和图形显示,可以形象直观地展现出变换的过程和最终结果。
2.1 正投影变换
在工程制图中需要采用国家标准规定的三视图来表达形体。利用垂直于坐标平面的投射线
将三维形体分别投射到三个坐标平面,即为正投影变换,得到形体的主视图、俯视图和左视图。
主视图投影变换:将形体向正面投影,令各顶点的y坐标为0,x、z坐标不变,得到的正面投影图在正平面上平移一段距离,得到主视图,其变换矩阵为TV=T正投影×T平移:
俯视图投影变换:将形体向水平面投影,令各顶点的z坐标为0,x、y坐标不变,得到的水平面投影图绕X轴顺时针旋转90°后与V面共面,并将所得投影图平移,使其与主视图分离,其变换矩阵TH为投射、旋转、平移变换形成的组合矩阵TH=T水平投影×T旋转×T平移:
左视图投影变换:将形体向侧面投影,令各顶点的x坐标为0,y、z坐标不变,得到的侧面投影绕Z轴逆时针旋转90°后与V面共面,并将所得投影图平移,使其与主视图分离,其变换矩阵TW为投射、旋转、平移变换形成的组合矩阵TW=T侧投影×T旋转×T平移:
已知三维棱台的各顶点坐标,使用MATLAB建立顶点的齐次坐标矩阵M,创建棱台的线框模型,根据坐标矩阵M绘制棱台的线框模型,如图1所示。
丁二酸酐
对棱台的三维模型进行正投影变换得到三视图,主视图坐标变换矩阵为M×TV,俯视图坐标变换矩阵为M×TH,左视图坐标变换矩阵为M×TW。根据图形的大小和位置选择其中l、m、n的数值,在MATLAB中使用变换后的矩阵绘制正投影图,如图2所示。
2.2 轴测投影变换
将三维形体连同直角坐标系沿不平行于坐标平面的方向,用平行投影法投射到投影面上所得的图形,就是轴测投影图。轴测图在一个投影面上同时反映出物体三个坐标面的信息,更接近于人的视觉观察习惯,所得图形形象、逼真,富有立体感,在工程设计和生产中常用作辅助图样,用来弥补正投影视图的不足。
正轴测投影变换:以正平面作为投影平面,先将形体绕Z轴逆时针旋转γ角,再绕X轴顺时针旋转α角,然后向V面投影,得到正轴测投影图。其变换矩阵为旋转、投影变换组成的复合矩阵TZ=T旋转×T旋转×T投影:
当α=-35°16′、γ=45°时得到工程上常用的正等测投影,当α=-19°28′、γ=20°42′时为正二侧投影,投影时各坐标轴轴向伸缩系数为0.82。
烽火通信南京研发中心
斜轴测投影变换:以正平面作为投影平面,先将形体沿X和Z轴方向作错切变换,然后向V面投影,得到斜轴测投影图。投影时X、Z坐标轴轴向伸缩系数为1,Y坐标轴轴向伸缩系数为0.5,其变换矩阵为错切、投影变换组成的复合矩阵TX=T错切×T错切×T投影:
对棱台的三维模型进行轴测投影变换,得到轴测投影图,正等轴测图坐标变换矩阵为M×TZ,斜二轴测图坐标变换矩阵为M×TX。选择合适的α和γ角度,以及d和f的数值,在MATLAB中使用变换后的矩阵绘制轴测投影图,如图3和图4所示。
2.3 透视变换
透视变换产生三维形体在不同视点位置和视线方向下的投影图。透视图从一个视点透过一个平面观察物体,其视线不平行,给人产生一种渐远渐小的深度感。透视图采用中心投影法绘制,将投射的视线与投影平面相截交即得到透视图[5]。通过投影中心将三维形体投影到平面上的变换称为透视变换。为了使透视图立体感强、图像逼真,要先对形体进行平移、旋转等操作,然后进行中心投影,得到逼真的透视投影图。
将形体绕Z轴旋转γ角,再相对X、Y、Z三个坐标轴平移l、m、n距离,然后使用两点透视
矩阵进行坐标变换,最后将向V面作正投影,得到棱台的透视图。其变换矩阵为旋转、平移、透视、投影变换组成的复合矩阵TT=T旋转×T平移×T透视×T投影,该矩阵还需正常化后得到透视投影的变换矩阵。
对棱台的三维模型进行透视变换,得到透视投影图,坐标变换矩阵为M×TT。选择合适的γ值以及p、q、r的数值,在MATLAB中使用变换后的矩阵绘制透视投影图,如图5所示。
系统部署方案
三维图形变换包括了几何变换和投影变换等,是计算机图形处理领域中的重要内容,矩阵运算是进行多种图形变换的统一方法。图形变换时需要对三维形体顶点的齐次坐标矩阵进行复合运算,计算过程繁琐且变换过程晦涩抽象,使用传统的程序设计语言实现变换过程的三维可视化非常困难。在计算机图形变换中引入MATLAB工具,利用其强大的矩阵运算能力和丰富的图形处理能力,快速准确地进行矩阵计算和图形输出,清晰直观地展现出图形变换的方法和过程,降低了学习的难度,增强了对图形变换方法的深层次理解,并将研究的重心转移到概念的理解和原理的运用上,有效地提高了系统开发的效率。

本文发布于:2024-09-22 15:23:25,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/65732.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:变换   矩阵   图形   坐标   进行   形体   投影   得到
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议