第1章三维图形建模、渲染和交互
1.1三维图形的绘制
在MATLAB中,基本的三维图形元素包括Surface对象和Patch对象,前者基于规则网格,后者基于任意多边形小面创建。
Surface对象是矩阵数据的三维表示,它将每个矩阵元素作为x-y平面上的高度进行显。Surface对象表示表面图,表面图由一系列四边形组成,这些四边形的顶点高度由矩阵数据指定。MATLAB可以用单色、渐变色或连接各点的网格线绘制表面图。父对象Axes确定表面图的位置和方向。
Patch对象是经过填充的多边形。一个单独的Patch对象包含多种填充样式,可以用单色或渐变色进行填充;可以用fill,fill3和contour3函数创建Patch对象。父对象axes确定Parch对象的位置和方向。
分别用surface和patch函数创建Surface和Patch对象。用Surface函数创建曲面相对比较容易,这里主要介绍用patch函数创建patch对象的情况。patch函数的调用格式如下。
patch(X,Y,C):在当前坐标系中添加二维面片。X和Y的元素共同指定多边形的项点。如果X和Y是矩阵,则MATLAB利用每一列的数据绘制一个多边形。C确定多边形的颜色。
patch(X,Y,Z,C):在三维坐标中创建面片。
patch(FV):用结构FV创建面片,该结构包含字段vertices,faces和可选的facevertecdata。这些字段会生成对应的Vertices,FaceVertesCData属性值。
patch(…PropertyName,PropertyValue…):指定顶点坐标以后用属性名/属性值匹配对指定其他面片属性。
patch(PropertyName,PropertyValue…):完全用属性名/属性值的形式指定属性值。使用这种方式,可以忽略颜色的指定,因为除非给FaceColor和EdgeColor属性指定一人值,MATLAB会使用默认的小面颜色和边线颜色。使用这种形式可以用Faces和Vertices属性定义面片。
展开