函数网格
生成网格曲面图。例如
tx=ty=林空间(-8,8,41)';[xx,yy]=网格(tx,ty);r=sqrt(xx.^2+yy.^2)+eps;tz=sin(r)./r网格(tx,ty,tz);xlabel(“tx”);ylabel(“ty”);zlabel(“tz”);标题(“三维Sombrero情节”);
返回了中所示的熟悉的“宽边帽”情节图15.5。注意函数的使用网格
以创建用于绘制Z数据的X坐标和Y坐标的矩阵。这个ndgrid
函数类似于网格
,但适用于N维矩阵。
这个网状
函数类似于网格
,但也会为曲面生成大量轮廓。
这个绘图3
函数显示任意三维数据,而不需要它来形成曲面。例如
t=0:0.1:10*pi;r=林空间(0,1,numel(t));z=林空间(0,1,numel(t));情节3(r.*sin(t)、r.*cos(t),z);xlabel(“r.*sin(t)”);ylabel(“r.*cos(t)”);zlabel(“z”);标题(“三维螺旋图3显示”);
显示三维缓和曲线,如所示图15.6.
最后看法
函数改变三维图的观点。
(x,y,z)
¶
(z)
¶
(…,c)
¶
(…,道具,val, …)
¶
(hax, …)
¶
h=
网格 (…)
¶
打印三维线框网格。
线框网格是使用矩形绘制的。角的顶点[x,y]通常是的输出网格
.在x-y平面中的2-D矩形区域上。z确定每个顶点的平面上方的高度。如果只有一个z给出矩阵,然后将其绘制在网格上x=1:列(z),y=1:行(z)
。因此,的列z对应不同x值和行z对应不同y价值观
网格的颜色是通过线性缩放z值以适应当前颜色map的范围。使用caxis
和/或改变颜色map以控制外观。
(可选)网格的颜色可以独立于z通过提供彩色矩阵,c.
任何属性/值对都将直接传递给基础surfaceobject。完整的属性清单记录在表面属性.
如果第一个参数hax是一个轴句柄,然后绘制到此轴,而不是返回的当前轴gca
.
可选返回值h是createdsurface对象的图形句柄。
(x,y,z)
¶
(z)
¶
(…,c)
¶
(…,道具,val, …)
¶
(hax, …)
¶
h=
网状 (…)
¶
打印具有基本轮廓线的三维线框网格。
线框网格是使用矩形绘制的。角的顶点[x,y]通常是的输出网格
.在x-y平面中的2-D矩形区域上。z确定每个顶点的平面上方的高度。如果只有一个z给出矩阵,然后将其绘制在网格上x=1:列(z),y=1:行(z)
。因此,的列z对应不同x值和行z对应不同y价值观
网格的颜色是通过线性缩放z值以适应当前颜色map的范围。使用caxis
和/或改变颜色map以控制外观。
(可选)网格的颜色可以独立于z通过提供彩色矩阵,c.
任何属性/值对都将直接传递给基础surfaceobject。完整的属性清单记录在表面属性.
如果第一个参数hax是一个轴句柄,然后绘制到此轴,而不是返回的当前轴gca
.
可选返回值h是一个带有图形句柄的2元素向量,用于创建的曲面对象和创建的等高线图。
(x,y,z)
¶
(z)
¶
(…,c)
¶
(…,道具,val, …)
¶
(hax, …)
¶
h=
垂帘网线图 (…)
¶
使用周围的幕墙打印三维线框网格。
线框网格是使用矩形绘制的。角的顶点[x,y]通常是的输出网格
.在x-y平面中的2-D矩形区域上。z确定每个顶点的平面上方的高度。如果只有一个z给出矩阵,然后将其绘制在网格上x=1:列(z),y=1:行(z)
。因此,的列z对应不同x值和行z对应不同y价值观
网格的颜色是通过线性缩放z值以适应当前颜色map的范围。使用caxis
和/或改变颜色map以控制外观。
(可选)网格的颜色可以独立于z通过提供彩色矩阵,c.
任何属性/值对都将直接传递给基础surfaceobject。完整的属性清单记录在表面属性.
如果第一个参数hax是一个轴句柄,然后绘制到此轴,而不是返回的当前轴gca
.
可选返回值h是createdsurface对象的图形句柄。
控制网格隐藏线的删除。
当在没有参数的情况下调用时,隐藏线删除状态会切换。
使用其中一种模式调用时on
或关
相应地设置状态。
可选输出参数mode是当前状态。
“隐藏线删除”确定网格绘图后面哪些图形对象可见。默认情况下,网格是不透明的,并且网格后面的线不可见。如果禁用了隐藏线移除,则可以通过网格的面(开口)看到网格后面的对象,尽管网格网格线仍然是不透明的。
(x,y,z)
¶
(z)
¶
(…,c)
¶
(…,道具,val, …)
¶
(hax, …)
¶
h=
冲浪 (…)
¶
打印三维曲面网格。
曲面网格是使用着色矩形绘制的。角的顶点[x,y]通常是的输出网格
.在x-y平面中的2-D矩形区域上。z确定每个顶点的平面上方的高度。如果只有一个z给出矩阵,然后将其绘制在网格上x=1:列(z),y=1:行(z)
。因此,的列z对应不同x值和行z对应不同y价值观
曲面的颜色是通过线性缩放z值以适应当前颜色map的范围。使用caxis
和/或改变颜色map以控制外观。
(可选)可以独立于z通过提供彩色矩阵,c.
任何属性/值对都将直接传递给基础surfaceobject。完整的属性清单记录在表面属性.
如果第一个参数hax是一个轴句柄,然后绘制到此轴,而不是返回的当前轴gca
.
可选返回值h是createdsurface对象的图形句柄。
注意:可以使用控制曲面的确切外观明暗处理
命令或使用set
以控制曲面对象属性。
详见: ezsurf,surfc,surfl,surfsnorm,三曲面,外形,网格,表面,网格,隐藏的,明暗处理,颜色表,caxis.
(x,y,z)
¶
(z)
¶
(…,c)
¶
(…,道具,val, …)
¶
(hax, …)
¶
h=
surfc (…)
¶
使用基础等高线绘制三维曲面网格。
曲面网格是使用着色矩形绘制的。角的顶点[x,y]通常是的输出网格
.在x-y平面中的2-D矩形区域上。z确定每个顶点的平面上方的高度。如果只有一个z给出矩阵,然后将其绘制在网格上x=1:列(z),y=1:行(z)
。因此,的列z对应不同x值和行z对应不同y价值观
曲面的颜色是通过线性缩放z值以适应当前颜色map的范围。使用caxis
和/或改变颜色map以控制外观。
(可选)可以独立于z通过提供彩色矩阵,c.
任何属性/值对都将直接传递给基础surfaceobject。完整的属性清单记录在表面属性.
如果第一个参数hax是一个轴句柄,然后绘制到此轴,而不是返回的当前轴gca
.
可选返回值h是createdsurface对象的图形句柄。
注意:可以使用控制曲面的确切外观明暗处理
命令或使用set
以控制曲面对象属性。
详见: ezsurfc,冲浪,surfl,surfsnorm,三曲面,外形,网格,表面,网格,隐藏的,明暗处理,颜色表,caxis.
(z)
¶
(x,y,z)
¶
(…,lsrc)
¶
(x,y,z,lsrc,P)
¶
(…,“cdata”)
¶
光
¶
(hax, …)
¶
h=
surfl (…)
¶
使用基于各种照明模型的着色打印三维曲面。
曲面网格是使用着色矩形绘制的。角的顶点[x,y]通常是的输出网格
.在x-y平面中的2-D矩形区域上。z确定每个顶点的平面上方的高度。如果只有一个z给出矩阵,然后将其绘制在网格上x=1:列(z),y=1:行(z)
。因此,的列z对应不同x值和行z对应不同y价值观
默认照明模式“cdata”
,更改曲面对象的cdata属性,以给人一种亮曲面的印象。
备用模式光
创建一个灯光对象来照亮曲面。
可以使用指定光源位置lsrc其可以是以度为单位的2元素向量[方位角,仰角],或者3元素向量[lx,ly,lz]。默认值是相对于当前视图逆时针旋转45度。
可以使用4-elementvector指定曲面的材质属性P= [调幅 D 服务提供商 exp]默认为</p>= [0.55 0.6 0.4 10].
“AM”
环境光强度D
漫反射强度“SP”
镜面反射强度“EXP”
镜面指数如果第一个参数hax是一个轴句柄,然后绘制到此轴,而不是返回的当前轴gca
.
可选返回值h是createdsurface对象的图形句柄。
用例
颜色图(骨骼(64));surfl(峰值);遮荫interp;
(x,y,z)
¶
(z)
¶
(…,道具,val, …)
¶
(hax, …)
¶
[Nx,Ny,Nz] =
surfsnorm (…)
¶
找到垂直于网格曲面的向量。
如果x和y是向量,则典型的顶点是(xjy(i) ,z(i,j))。因此,的列z对应不同x的值和行z对应不同y价值观如果只有单个输入z则给出x是的1:列(z)
和y是1:行(z)
.
如果不要求返回参数,则会绘制曲面图,其中包含曲面的法线向量。
任何属性/值输入对都将指定给曲面对象。完整的属性列表记录在表面属性.
如果第一个参数hax是一个轴句柄,然后绘制到此轴,而不是返回的当前轴gca
.
如果指定了输出参数,则在中返回法线向量的分量Nx,Ny和Nz没有阴谋。法向量未归一化(幅值!=1)。若要规范化,请使用
len=sqrt(nx.^2+ny.^2+nz.^2);nx./=len;ny。/=len;nz./=len;
的使用示例surfsnorm
是
surfsnorm(峰值(25));
算法:法向量是通过取网格中每个四边形面的对角线的叉积来计算的,以找到每个面的中心的法向量。接下来,对于每个网格点,对四个最近的法线向量进行平均,以获得网格点处的表面的最终法线。
对于曲面对象“顶点法线”
属性包含连续的信息,除了可能在曲面边界附近,不同的插值方案可能会返回略有不同的值。
详见: isonormals,颤动3,冲浪,网格.
fv=
等值面 (v,等值线)
¶
fv=
等值面 (v)
¶
fv=
等值面 (x,y,z,v,等值线)
¶
fv=
等值面 (x,y,z,v)
¶
fvc=
等值面 (…,col)
¶
fv=
等值面 (…,“noshare”)
¶
fv=
等值面 冗长的
¶
[f,v] =
等值面 (…)
¶
[f,v,c] =
等值面 (…)
¶
(…)
¶
计算三维体积数据的等值面。
等值面连接具有相同值的点,类似于等值线图,但在三维中。
输入参数v是一个三维数组,包含在体积上采样的数据。
输入等值线是一个标量,用于指定sosurface的值。如果等值线省略或为空,等值面的“好”值从v.
使用单个输出参数调用时等值面
返回aststructure数组fv包含字段面孔和顶点在点处计算[x,y,z]=网格(1:l,1:m,1:n)
这里的[l,m,n]=大小(v)
.输出fv可以直接用作的输入色斑
作用
如果使用其他输入参数调用x,y和z是大小与相同的三维数组v或长度对应于的维度的向量v,然后在指定的点获取体积数据。如果x,y或z为空,网格对应于索引(1:n
)在各自的方向上(参见网格
).
可选输入参数col,是一个三维数组,大小与v,指定等值面的着色。根据需要对颜色数据进行插值以匹配等值线.在这种情况下,输出结构体数组具有附加字段facevertexcdata.
如果给定字符串输入参数“noshare”
,对于不同的面,顶点可以多次重新转换。默认行为是限制相邻面共享的顶点。
字符串输入参数冗长的
支持MATLAB兼容性,但没有效果。
任何字符串参数都必须在其他参数之后传递。
如果使用两个或三个输出参数调用,则返回有关面的信息f,顶点v,和颜色数据c作为分离射线而不是单个结构体数组。
如果在没有输出参数的情况下调用,则使用色斑
命令和灯光对象添加到轴(如果还不存在)。
例如
[x,y,z]=网格(1:5,1:5,1:5);v=兰特(5,5,5);等值面(x,y,z,v,.5);
将直接在图形窗口中绘制随机等值面几何图形。
具有不同附加着色的等值面几何体的示例:
N=15;#增加每个方上级顶点数=.4;#将isovalue更改为.1以显示spherelin=林空间(0,2,N);[x,y,z]=网格(lin,lin,lin);v=绝对值((x-.5)^2+(y-.5)^2+(z-.5)^2.图形子地块(2,2,1);视图(-38,20);[f,vert]=等值面(x,y,z,v,iso);p=补丁(“Faces”,f,“Vertices”,vert,“EdgeColor”,“none”);pbaspect([1 11 1]);isonormals(x,y,z,v,p)集(p,“FaceColor”,“green”,“FaceLighting”,“gouraud”);灯(“位置”,[1 1 5]);子地块(2,2,2);视图(-38,20);p=补丁(“Faces”,f,“Vertices”,vert,“EdgeColor”,“blue”);pbaspect([1 11 1]);isonormals(x,y,z,v,p)集(p,“FaceColor”,“none”,“EdgeLighting”,“gouraud”);灯(“位置”,[1 1 5]);子地块(2,2,3);视图(-38,20);[f,vert,c]=等值面(x,y,z,v,iso,y);p=补丁(“Faces”,f,“Vertices”,vert,“FaceVertexData”,c,…“FaceColor”,“interp”,“EdgeColor”,”none“);pbaspect([1 11 1]);isonormals(x,y,z,v,p)集合(p,“FaceLighting”,“gouraud”);灯(“位置”,[1 1 5]);子地块(2,2,4);视图(-38,20);p=补丁(“Faces”、f、“Vertices”、vert、“FaceVertexData”、c、…“FaceColor”、“interp”、“EdgeColor”和“blue”);pbaspect([1 11 1]);isonormals(x,y,z,v,p)集合(p,“FaceLighting”,“gouraud”);灯(“位置”,[1 1 5]);
详见: isonormals,等色线,等角点,smooth3,减少流明,reducepatch,色斑.
vn=
isonormals (val,垂直)
¶
vn=
isonormals (val,hp)
¶
vn=
isonormals (x,y,z,val,垂直)
¶
vn=
isonormals (x,y,z,val,hp)
¶
vn=
isonormals 取消
¶
(val,hp)
¶
(x,y,z,val,hp)
¶
取消
¶
计算等值面的法线。
顶点法线vn根据三维数组的梯度计算val(大小:lxmxn),包含各向异性曲面几何体的数据。法线指向中的较小值val.
如果使用一个输出参数调用vn,和第二个输入自变量垂直保持等值面的顶点,然后法线vn在顶点处计算垂直在给定的网格上[x,y,z]=网格(1:l,1:m,1:n)
.输出参数vn大小与相同垂直并且可以用于设置“顶点法线”
相应补丁的属性。
如果使用其他输入参数调用x,y和z,是与相同大小的三维数组val,则在这些点处获取体积数据。而不是顶点数据垂直,一个补丁句柄hp可以传递给函数。
如果最后一个输入参数是字符串取消
,计算等值面几何体的反向向量法线(即,中的指向更大值val).
如果没有给出输出参数,则属性“顶点法线”
与补丁句柄关联的补丁的hp直接更改。
fvc=
等角点 (v,等值线)
¶
fvc=
等角点 (v)
¶
fvc=
等角点 (x,y,z,v,等值线)
¶
fvc=
等角点 (x,y,z,v)
¶
fvc=
等角点 (…,哪_个)
¶
fvc=
等角点 (…,哪个_平面)
¶
fvc=
等角点 (…,冗长的
)
¶
[面孔,顶点,fvcdata] =
等角点 (…)
¶
(…)
¶
为三维数据的等值面创建端盖。
此函数用于在等曲面的开放端放置封口。
输入参数v是一个三维数组,包含在体积上采样的数据。
输入等值线是一个标量,用于指定sosurface的值。如果等值线省略或为空,等值面的“好”值从v.
当使用单个输出参数调用时,等角点
返回aststructure数组fvc具有字段:面孔
,顶点
和facevertexcdata
。结果在点处计算[x,y,z]=网格(1:l,1:m,1:n)
这里的[l,m,n]=大小(v)
.输出fvc可以直接用作的输入色斑
作用
如果使用其他输入参数调用x,y和z是大小与相同的三维数组v或长度对应于的维度的向量v,然后在指定的点获取体积数据。如果x,y或z为空,网格对应于索引(1:n
)在各自的方向上(参见网格
).
可选参数哪_个可以具有以下字符串值之一,该值定义了数据的包方式:
在上面
,a
默认用于包含上述数据的端盖等值线.
在下面
,b
用于包含以下数据的端盖等值线.
可选参数哪个_平面可以具有以下字符串值之一,以定义应绘制的端盖:
全部的
默认用于所有端盖。
“xmin”
用于数据的较低x平面处的端盖。
“xmax”
用于数据的上部x平面处的端盖。
“ymin”
用于数据的较低y平面处的端盖。
“ymax”
用于数据的上y平面处的端盖。
“zmin”
用于数据的较低z平面处的端盖。
“zmax”
用于数据的上z平面处的端盖。
字符串输入参数冗长的
支持MATLAB兼容性,但没有效果。
如果使用两个或三个输出参数调用,则面的数据面孔,顶点顶点,以及颜色数据facevertexcdata以单独的数组而不是单个结构体返回。
如果在没有输出参数的情况下调用,则使用色斑
命令
详见: 等值面,isonormals,色斑.
cdat=
等色线 (c,v)
¶
cdat=
等色线 (x,y,z,c,v)
¶
cdat=
等色线 (x,y,z,r,g,b,v)
¶
cdat=
等色线 (r,g,b,v)
¶
cdat=
等色线 (…,hp)
¶
(…,hp)
¶
计算等值面颜色。
如果使用一个输出参数和第一个输入参数调用c是一个三维数组,包含索引的颜色值和第二个输入参数v是等值面几何体的顶点,然后返回矩阵cdat具有计算点处几何图形的颜色数据信息[x,y,z]=网格(1:l,1:m,1:n)
.输出胶cdat可以用于手动设置“FaceVertexData”
等值面补丁对象的属性。
如果使用其他输入参数调用x,y和z它们是与c则在这些指定点处获取颜色数据。
而不是索引颜色数据c,等色线
也可以用RGB值调用r,g,b.如果输入参数x,y,z则没有给出网格
使用计算值。
(可选)补丁句柄hp可以作为所有函数调用变体的最后一个输入参数,并且顶点数据将从等值面补丁对象中提取。最后,如果没有给出输出参数,那么补丁句柄给出的补丁颜色hp都发生了变化。
详见: 等值面,isonormals.
平滑数据=
smooth3 (数据)
¶
平滑数据=
smooth3 (数据,方法)
¶
平滑数据=
smooth3 (数据,方法,sz)
¶
平滑数据=
smooth3 (数据,方法,sz,std_dev)
¶
三维矩阵的平滑值数据.
例如,此函数可用于减少中噪声的影响数据在计算等值面之前。
数据必须是非单例三维矩阵。输出平滑数据是与大小相同的矩阵数据.
参数输入方法确定哪个卷积核用于平滑处理。可能的选择:
盒
,b
默认具有尖锐边缘的卷积核。
“高斯”
,“g”
从非相关三元分布函数表示的卷积核。
sz是指定卷积核在x、y和z方上级大小的三元向量,或者是标量。在标量情况下,所有三个维度都使用相同的尺寸([sz,sz,sz]
). 默认值为3。
如果方法是“高斯”
然后是可选输入std_dev定义了三元正态分布函数的标准差。std_dev是指定高斯卷积核在x、y和z方上级标准偏差的三元向量,或者是标量。在标量情况下,所有三维都使用相同的值。默认值为0.65。
详见: 等值面,isonormals,色斑.
[nx,ny,nz,nv] =
减少流明 (v,r)
¶
[nx,ny,nz,nv] =
减少流明 (x,y,z,v,r)
¶
nv=
减少流明 (…)
¶
减少中的数据集体积v根据中的值r.
v是在前3个维度中非单例的矩阵。
r可以是表示x、y和z方上级归约因子的3个元素的向量,也可以是标量,在这种情况下,在所有三维中使用相同的归约系数。
减少流明
减少的元素数量v只拿走每一个r-第th个元素。
可选地,x,y和z可以提供来表示的坐标集v。它们可以是大小相同的矩阵v或具有根据的尺寸的大小的向量v,在这种情况下,它们被扩展为矩阵(详见网格
).
如果减少流明
则使用两个参数调用x,y和z假设与的相应索引匹配v.
在中返回缩减矩阵nv.
(可选)在中返回缩减后的坐标集nx,ny和nz分别地
示例:
v=整形(1:6*8*4,[6 8 4]);nv=减少流明(v, [4 3 2]);
v=整形(1:6*8*4,[6 8 4]);x= 1:3:24;y= -14:5:11;z=林空间(16,18,4);[nx,ny,nz,nv]=减少流明(x,y,z,v, [4 3 2]);
详见: 等值面,isonormals.
减少fv=
reducepatch (fv)
¶
减少fv=
reducepatch (面孔,顶点)
¶
减少fv=
reducepatch (补丁句柄)
¶
(补丁句柄)
¶
减少fv=
reducepatch (…,还原因子)
¶
减少fv=
reducepatch 快速的
¶
减少fv=
reducepatch 冗长的
¶
[减少的面,减少顶点(_V)] =
reducepatch (…)
¶
减少补丁对象中的面和顶点数量,同时保留补丁的整体形状。
输入补丁可以从一个结构体表示fv与字段面孔
和顶点
,乘以两个矩阵面孔和顶点(例如,参见的结果等值面
),或通过绑定到补丁对象补丁句柄详见色斑
).
通过将补丁的最短边迭代到其中点来减少补丁中的面和顶点的数量(如所讨论的,例如,此处:https://libigl.github.io/libigl/tutorial/tutorial.html#meshdecimation).
目前,仅支持从三角形组成的补丁。搜索补丁也仅从三角形组成。
如果reducepatch
使用有效补丁的句柄调用补丁句柄,并且没有任何输出参数,则givenpatch将立即更新。
如果还原因子省略,得到的结构体减少fv包括原始批次的大约50%的面。如果还原因子是介于0(排除)和1(排除)之间的分数,该贴片具有大约确定的facesis的相应分数。如果还原因子是一个大于或等于1的整数,则生成的补丁具有近似值还原因子面孔。根据补丁的几何图形,生成的面数可能与给定的值不同还原因子。当检测到许多共享顶点时尤其如此。
为了减少,有必要共享接触面的顶点。共享顶点会自动检测到。通过传递可选的字符串参数可以跳过此检测快速的
.
带有可选的字符串参数冗长的
,其他状态信息将打印到命令窗口中。
任何字符串输入参数都必须在所有其他参数之后传递。
如果使用一个输出参数调用,则在结构体中返回缩减的面和顶点减少fv与字段面孔
和顶点
(详见的一个输出参数等值面
).
如果使用两个输出参数调用,则缩减的面和顶点将在两个单独的矩阵中返回减少的面和减少的顶点.
详见: 等值面,isonormals,减少流明,色斑.
(</p>,sf)
¶
nfv=
收缩面 (</p>,sf)
¶
nfv=
收缩面 (fv,sf)
¶
nfv=
收缩面 (f,v,sf)
¶
[nf,nv] =
收缩面 (…)
¶
通过收缩因子减小补丁中面的大小sf.
补丁对象可以从图形句柄指定(</p>),一个补丁结构体(fv)与字段“面孔”
和“顶点”
,或作为两个单独的矩阵(f,v)面的和顶点。
收缩系数sf是一个正数,指定新面将占据的原始区域的百分比。如果没有给出系数,则默认值为0.3(减少到原始尺寸的30%)。大于1.0的因子将导致面的扩展。
给定一个补丁句柄作为第一个输入参数,而没有输出参数,则在适当的位置执行补丁面的收缩并重新绘制补丁。
如果使用一个输出参数调用,则返回一个包含字段的结构体“面孔”
,“顶点”
和“facevertexcdata”
包含收缩后的数据。此结构体可以直接用作的输入参数色斑
作用
小心:在凹凸面上执行收缩操作可能会导致不理想的结果。
示例:一个三角形的3/4圆和相应的缩小版本。
[phi r]=网格(林空间(0,1.5*pi,16),林空间(1,2,4));tri=delaunay(phi(:),r(:));v=[r(:).*sin(phi(:))r(:;clf()p=补丁(“Faces”,tri,“Vertices”,v,“FaceColor”,“none”);fv=收缩面(p);patch(fv)axis equalgrid on
详见: 色斑.
d=
弥漫的 (sx,sy,sz,lv)
¶
计算法线向量元素定义的曲面的漫反射强度sx,sy,sz.
光源位置向量lv可以给出为以度为单位的2元素向量[方位角,仰角],或者给出为3元素向量[x,y,z]。
refl=
镜面反射的 (sx,sy,sz,lv,vv)
¶
refl=
镜面反射的 (sx,sy,sz,lv,vv,东南方)
¶
计算从法线向量元素定义的表面的镜面反射强度sx,sy,sz使用Phong的近似。
光源位置和查看器位置向量是使用参数指定的lv和vv分别地位置向量可以给出为以度为单位的2-元素向量[方位角,仰角]或3-元素向量[x,y,z]。
可选的第六个参数指定镜面反射指数(扩散)东南方如果没有给出,东南方默认为10。
(type)
¶
(hax,type)
¶
设置补丁或曲面图形对象的照明。
的有效参数type是
平的
绘制具有分面照明效果的对象。
“gourud”
在顶点之间绘制具有线性插值照明效果的对象。
没有一个
绘制没有灯光和阴影效果的对象。
如果第一个参数hax是一个轴控制柄,然后更改此轴中对象的光照效果,而不是从返回的当前轴gca
.
只有在同一轴上至少存在一个可见光对象时,照明效果才可见。
闪亮的
¶
迟钝的
¶
金属
¶
默认
¶
([像,ds,ss])
¶
([像,ds,ss,东南方])
¶
([像,ds,ss,东南方,scr])
¶
(hlist, …)
¶
mtypes=
布料 ()
¶
refl_pops=
布料 (mtype_string)
¶
为曲面和补丁的照明设置反射率属性。
此函数可更改所有的环境光、漫反射和镜面反射强度,以及镜面反射指数和镜面反射颜色反射率色斑
和表面
当前轴中的对象。在一定程度上,这可以用于模拟某些材料在与光
.
当使用字符串调用时,将根据下表中的值设置上述属性:
m类型 | 环境强度 | 扩散强度 | 镜面反射强度 | 镜面反射-指数 | 镜面颜色-反射率 | ||
---|---|---|---|---|---|---|---|
闪亮的 |
0.3 | 0.6 | 0.9 | 20 | 1.0 | ||
迟钝的 |
0.3 | 0.8 | 0.0 | 10 | 1.0 | ||
金属 |
0.3 | 0.3 | 1.0 | 25 | 0.5 | ||
默认 |
默认 |
默认 |
默认 |
默认 |
默认 |
当用三个元素的向量调用时,所有元素的环境强度、漫射强度和特殊强度色斑
和表面
更新当前轴中的对象。可选的第四个向量元素更新镜面指数,可选的第五个向量元素则更新镜面颜色反射率。
图形句柄列表也可以作为第一个参数传递。在这种情况下,这些句柄和所有子对象的属性色斑
和表面
对象将被更新。
此外,布料
可以用单个输出参数调用。如果在没有输入参数的情况下调用,则列数组向量mtypes返回所有可用材料的字符串。如果一个inputargumentmtype_string是材料的名称,1x5元胞载体refl_pops并研究了该材料的反射属性。在这两种情况下,都不会更改图形属性。
正确的
¶
左边
¶
头灯
¶
(az,el)
¶
(…,风格)
¶
(hl, …)
¶
(hax, …)
¶
h=
凸轮照明灯 (…)
¶
使用简单的界面将灯光对象添加到图形中。
当在没有参数的情况下调用时,会将灯光对象添加到当前绘图中,并将其放置在相机当前位置的略上方和右侧:这相当于右侧凸轮灯
.命令左凸轮灯
和前照灯
与放置在相机位置左侧或相机位置中心的位置类似。
为了进行更多控制,可以通过方位角旋转来指定灯光位置az和仰角el,均以度为单位,相对于摄影机的当前属性。
可选字符串风格指定灯光是否为局部点源(地方的
,默认值)或放置在无限远的位置(极大的
).
如果第一个参数hl是灯光对象的句柄,然后对该灯光对象执行操作,而不是创建新对象。
如果第一个参数hax是一个轴控制柄,然后在此轴中创建一个新的灯光对象,而不是从返回的当前轴gca
.
可选返回值h是灯光对象的图形句柄。这可用于移动或进一步更改灯光对象的属性。
示例:
将灯光对象添加到绘图
球体(36);凸轮照明灯
准确定位光源
凸轮灯(45,30);
此处灯光首先向上倾斜(详见凸轮
)从相机位置(详见坎波斯
)30度。然后它向右偏转45度。两个旋转都以相机目标为中心(详见camtarget
).
返回控制柄以进一步操作灯光对象
clfsphere(36);hl=摄像头(“左”);set(hl,“color”,“r”);
详见: 光.
(az,el)
¶
(hax,az,el)
¶
(hl,az,el)
¶
hl=
光照角 (…)
¶
[az,el] =
光照角 (hl)
¶
使用球面坐标将灯光对象添加到当前轴。
灯光位置从方位角旋转指定az和内倾角el,均以度为单位。
如果第一个参数hax是一个轴控制柄,然后在此轴中创建一个新的灯光对象,而不是从返回的当前轴gca
.
如果第一个参数hl是灯光对象的句柄,然后对该灯光对象执行操作,而不是创建新对象。
可选返回值hl是灯光对象的图形句柄。
用例
将灯光对象添加到绘图
clf;球体(36);光角度(45,30);
[xx,yy] =
网格 (x,y)
¶
[xx,yy,zz] =
网格 (x,y,z)
¶
[xx,yy] =
网格 (x)
¶
[xx,yy,zz] =
网格 (x)
¶
给定的向量x和y坐标,返回矩阵xx和yy对应于完整的2-D网格。
的行xx是的副本x的列yy是的副本y如果y如果省略,则假定其与x.
如果可选z输入已给出,或zz则输出将是一个完整的三维网格。如果z省略,并且zz如果有要求,则假定与y.
网格
最常用于返回将被绘制的2-D或3-D函数的输入。以下示例创建了一个“宽边帽”函数的曲面图。
f=@(x,y)sin(sqrt(x.^2+y.^2))。/sqrt(x.^2+y.^2);range=林空间(-8,8,41);[十、,Y]=网格(范围,范围);Z=f(X,Y);冲浪(X,Y,Z);
编程说明:网格
仅限于二维或三维网格生成。这个ndgrid
函数将生成1-D到N-D网格。然而,这些函数并不完全等同。如果x是长度为M的向量,并且y是长度为N的向量,则网格
将返回NxM的输出网格。ndgrid
将为相同的输入返回MxN(转置)的输出。一些核心函数预期网格
输入和其他人期望ndgrid
输入检查有关函数的文档,以确定正确的输入格式。
[y1,y2, …,yn
ndgrid (x1,x2, …,xn
¶
[y1,y2, …,yn
ndgrid (x)
¶
给定n个向量x1, …,xnndgrid
返回维度n的narray。
第i个输出自变量的元素包含向量的元素x我在所有不同于第i维度的维度上重复了一遍。只使用一个输入参数调用ndgridx相当于在所有n个输入参数都等于的情况下调用ndgridx:
[y1,y2, …,yn] =ndgrid(x, …,x)
编程说明:ndgrid
与函数非常相似网格
除了前两个维度被转换为网格
。一些核心函数预期网格
输入和其他人期望ndgrid
输入检查有关函数的文档,以确定正确的输入格式。
详见: 网格.
(x,y,z)
¶
(x,y,z,道具,value, …)
¶
(x,y,z,fmt)
¶
(x,cplx)
¶
(cplx)
¶
(hax, …)
¶
h=
绘图3 (…)
¶
制作三维绘图。
许多不同的参数组合是可能的。最简单的形式是
绘图3(x,y,z)
其中自变量被认为是要在三维中绘制的点的顶点。若所有自变量都是相同长度的向量,则绘制一条连续的直线。如果所有的参数都是矩阵,那么的每一列都被视为一行。没有试图转换参数以使行数匹配。
如果只给出两个自变量,作为
绘图3(x,cplx)
第二个自变量的实部和虚部用作y和z坐标。
如果只给出一个自变量,作为
绘图3(cplx)
参数的实部和虚部用作y和z值,并将它们与索引进行比较。
参数也可以三人一组给出,如下所示
绘图3(x1,y1,z1,x2,y2,z2, ...)
其中每一组三个自变量被视为一条单独的线或三维的一组线。
要绘制多个一个或两个参数组,请使用空格式字符串分隔每个组,如下所示
绘图3(x1,c1, "",c2, "", ...)
可以指定多个属性值对,这将影响绘制的线对象绘图3
。如果fmt提供了参数,它将以与相同的方式格式化行对象plot
。完整的属性清单记录在线属性.
如果第一个参数hax是一个轴句柄,然后绘制到此轴,而不是返回的当前轴gca
.
可选返回值h是已创建打印的图形句柄。
用例
z=[0:0.05:5];plot3(cos(2*pi*z),sin(2*pi**z),z,“螺旋;”);plot3(z,exp(2i*pi*z),“复正弦曲线;”);
(方位角,高程)
¶
([方位角 高程])
¶
([x y z])
¶
2.
¶
3.
¶
(hax, …)
¶
[方位角,高程] =
看法 ()
¶
查询或设置当前轴的视点。
参数方位角和高程可以作为两个自变量或作为2-元素向量给出。也可以使用笛卡尔坐标指定视点x,y和z.
电话视图(2)
将视点设置为方位角= 0以及高程= 90,这是二维图的默认值。
电话视图(3)
将视点设置为方位角= -37.5以及高程= 30,这是三维图形的默认设置。
如果第一个参数hax是一个轴句柄,然后在该轴上操作,而不是在返回的当前轴上操作gca
.
如果没有输入,返回这里的方位角和高程.
()
¶
(h)
¶
(handle_list)
¶
(hax)
¶
移动相机并调整其属性以查看对象。
当输入为句柄时h,相机设置为指向的边界框的中心h。调整相机的位置,使边界框大致填满视野。
此命令固定摄影机的查看方向(camtarget()-campos()
),相机向上向量(详见凸轮
)和视角(详见camva
). 摄像头目标(详见camtarget
)和摄像头位置(详见坎波斯
)都发生了变化。
如果参数是列表handle_list,然后计算所有对象的单个边界框,然后如上所述调整相机。
如果参数是轴对象hax,则轴的子对象用作handle_list。当在没有输入的情况下调用时,它使用当前轴(详见gca
).
</p>=
坎波斯 ()
¶
([x y z])
¶
mode=
坎波斯 模式
¶
(mode)
¶
(hax, …)
¶
获取或设置相机位置。
默认摄影机位置是根据场景自动确定的。例如,要获取相机位置:
hf=图形();peaks()p=campos()⇒ p=-27.394-35.701 64.079
然后,我们可以将相机沿z轴进一步向上移动:
campos(p+[0 0 10])campos⇒ ans=-27.394-35.701 74.079
做出了改变后,摄像机的位置mode现在是手动的:
campos(“模式”)⇒ 手册
我们可以将其设置回自动:
campos(“auto”)campos⇒ ans=-27.394-35.701 64.079闭合(hf)
默认情况下,这些命令会影响当前轴;或者,轴扫描从可选参数指定hax.
(θ,phi)
¶
(θ,phi,coorsys)
¶
(θ,phi,coorsys,目录)
¶
(θ,phi数据
¶
(θ,phi,“数据”,“z”)
¶
(θ,phi,“数据”,“x”)
¶
(θ,phi,“数据”,“y”)
¶
(θ,phi数据x y z])
¶
(θ,phi照相机
¶
(hax, …)
¶
围绕目标向上/向下和向左/向右旋转相机。
移动相机phi度向上和θ向右倾斜度,就好像它在围绕目标的轨道上一样。实例
球体()迷彩(30,20)
这些旋转以摄影机目标为中心(详见camtarget
).首先,通过旋转相机来向上或向下倾斜相机位置phi围绕与两个观看方向正交的轴的角度(具体地camtarget()-campos()
)和相机的“上向量”(详见凸轮
).实例
迷彩(0,20)
第二次旋转取决于坐标系coorsys和方向目录输入。的默认值coorsys是data
在这种情况下,通过旋转相机,相机向左或向右偏转θ围绕轴的度数从目录。的默认值目录是z
,对应于向量[0, 0, 1]
实例
迷彩(30,0)
什么时候coorsys设置为照相机
,通过绕平行于相机上方向向量的轴旋转相机,可以左右移动相机(详见凸轮
).输入目录在这种情况下不应指定。实例
camorbit(30,0,“相机”)
(注:旋转依据phi不受影响照相机
.)
默认情况下,此命令会影响当前轴;或者,轴扫描从可选参数指定hax.
(θ)
¶
(hax,θ)
¶
转动相机。
将相机顺时针滚动θ度。例如,以下命令将相机顺时针(向右)滚动30度;这将导致场景看起来向左滚动30度:
峰值()凸轮轴(30)
将相机向后滚动:
凸轮轴(-30)
以下命令将恢复默认的摄影机滚转:
camup(“自动”)
默认情况下,这些命令会影响当前轴;或者,轴扫描从可选参数指定hax.
t=
camtarget ()
¶
([x y z])
¶
mode=
camtarget 模式
¶
(mode)
¶
(hax, …)
¶
获取或设置相机指向的位置。
摄影机目标是摄影机指向的空间中的一个点。通常,它是根据场景自动确定的:
hf=图形();球体(36)v=凸轮目标()⇒ v=0 0 0
我们可以将相机转向新目标:
camtarget([1 11 1])camtarget()⇒ 1 1 1
这样做后,摄像机的目标mode是手动的:
camtarget(“模式”)⇒ 手册
这意味着,例如,向场景中添加新对象不会重定向摄影机:
等等峰值()凸轮目标()⇒ 1 1 1
我们可以将其重置为自动:
camtarget(“auto”)camtarget()⇒ 0 0 0.76426损失(hf)
默认情况下,这些命令会影响当前轴;或者,轴扫描从可选参数指定hax.
上级=
凸轮 ()
¶
([x y z])
¶
mode=
凸轮 模式
¶
(mode)
¶
(hax, …)
¶
获取或设置摄影机上方向向量。
默认情况下,相机的方向是“向上”对应于正z轴:
hf=数字();球体(36)v=凸轮()⇒ v=0 0 1
指定新的“向上向量”会滚动相机并将模式设置为手动:
凸轮轴([1 1 0])凸轮轴()⇒ 1 1 0camup(“模式”)⇒ 手册
修改向上向量不会修改摄影机目标(详见camtarget
). 因此,摄影机上方向向量可能与摄影机视图的方向不正交:
camup([1 2 3])点(camup(),camtarget()-campos())⇒ 6.
其结果是,对上向量的“回拉”不会使相机视图倾斜(因为这需要更改目标)。因此,设置上向量通常仅用于滚动摄影机。一个更直观的命令是凸轮轴
.
最后,我们可以将向上向量重置为自动模式:
camup(“auto”)camup()⇒ 0 0 1丢失(hf)
默认情况下,这些命令会影响当前轴;或者,轴扫描从可选参数指定hax.
a=
camva ()
¶
(a)
¶
mode=
camva 模式
¶
(mode)
¶
(hax, …)
¶
获取或设置相机视角。
相机的视角决定了可以看到多少。默认情况下,这是:
hf=图形();球体(36)a=凸轮()⇒ a=10.340
为了获得更宽的视角,我们可以将视角增加一倍。这也会将模式设置为手动:
camva(2*a)camva(“模式”)⇒ 手册
我们可以将其设置回自动:
camva(“自动”)⇒ autocamva()⇒ ans=10.340闭合(hf)
默认情况下,这些命令会影响当前轴;或者,轴扫描从可选参数指定hax.
(zf)
¶
(hax,zf)
¶
放大或缩小相机。
的值zf大于1“放大”,使场景看起来放大:
hf=数字();球体(36)凸轮变焦(1.2)
小于1的值会“缩小”,以便相机可以看到更多场景:
凸轮变焦(0.5)
从技术上讲,缩放会影响“视角”。以下命令将重置为默认缩放:
camva(“自动”)关闭(hf)
默认情况下,这些命令会影响当前轴;或者,轴扫描从可选参数指定hax.
(x,y,z,v,sx,sy,sz)
¶
(x,y,z,v,xi,易,zi)
¶
(v,sx,sy,sz)
¶
(v,xi,易,zi)
¶
(…,方法)
¶
(hax, …)
¶
h=
片 (…)
¶
绘制三维数据/标量场的切片。
三维数组的每个元素v表示参数给定的标量值ata位置x,y和z.参数x,y和z是与数组大小相同的三维数组v在中“网格”
格式或向量。参数xi,等遵循类似的格式x,等等,并且它们表示数组所在的点不及物动词使用interp3进行插值。向量sx,sy和sz包含各个轴的正交切片的点。
如果x,y,z被省略,它们被假定为x=1:尺寸(v2.
,y=1:大小(v1.
和z=1:大小(v3.
.
方法是其中之一:
“最近的”
返回最近的邻居。
线性的
最近邻居的线性插值。
立方体的
来自四个最近邻居的三次插值(尚未实现)。
“样条曲线”
三次样条插值——平滑贯穿曲线的一阶导数和二阶导数。
默认方法为线性的
.
如果第一个参数hax是一个轴句柄,然后绘制到此轴,而不是返回的当前轴gca
.
可选返回值h是createdsurface对象的图形句柄。
示例:
[x,y,z]=网格(林空间(-8,8,32));v=sin(sqrt(x.^2+y.^2+z^2))。/(sqrt(x.^2+y.^2+z^2));切片(x,y,z,v,[],0,[]);[xi,yi]=网格(林空间(-7,7));zi=xi+yi;切片(x,y,z,v,xi,yi,zi);
(y)
¶
(x,y)
¶
(x,y,width)
¶
(hax, …)
¶
h=
带子 (…)
¶
为的列绘制函数区图yvs。x.
如果x如果省略,则假定为包含行号的向量(1:行(Y)
). 可替换地,x也可以是元素数与行数相同的向量y在哪种情况下相同x用于的每列y.
可选参数width指定单个函数区的宽度(默认值为0.75)。
如果第一个参数hax是一个轴句柄,然后绘制到此轴,而不是返回的当前轴gca
.
可选返回值h是表示每个函数区的曲面对象的图形句柄的向量。
(type)
¶
(hax,type)
¶
设置补丁或曲面图形对象的着色。
的有效参数type是
平的
带有不可见边缘的单色补丁。
“分面”
黑色边缘的单色补丁。
“interp”
将对补丁顶点之间的颜色进行插值,并且补丁边不可见。
如果第一个参数hax是一个轴句柄,然后绘制到此轴,而不是返回的当前轴gca
.
(x,y,z)
¶
(x,y,z,s)
¶
(x,y,z,s,c)
¶
(…,风格)
¶
(…,“已填充”)
¶
(…,道具,val)
¶
(hax, …)
¶
h=
散射3 (…)
¶
绘制三维散点图。
符号绘制在从向量中的坐标定义的每个点上x,y和z.
符号的大小从s,可以是标量,也可以是长度与x,y和z如果s如果没有给定,或者是一个空矩阵,则使用默认值8点。
符号的颜色从c,可以是定义固定颜色的字符串;三元素向量,给出颜色的红色、绿色和蓝色分量;长度与相同的向量x其将缩放后的索引提供给当前颜色图;或者单独定义每个符号的RGB颜色的Nx3矩阵。
可以使用更改要使用的符号风格参数,即以与plot
命令如果未指定符号,则默认为“o”
或圆形。如果参数“已填充”
则填充符号。
如果第一个参数hax是一个轴句柄,然后绘制到此轴,而不是返回的当前轴gca
.
可选返回值h是表示点的散射对象的图形句柄。
[x,y,z]=峰值(20);scatter3(x(:),y(:)、z(:);
编程说明:属性的完整列表记录在散点属性.
(x,y,z)
¶
(z)
¶
(…,c)
¶
(…,道具,val, …)
¶
(hax, …)
¶
h=
瀑布 (…)
¶
绘制三维瀑布图。
瀑布图类似于垂帘网线图
只打印的行的网格线z(x值)。
线框网格是使用矩形绘制的。角的顶点[x,y]通常是的输出网格
.在x-y平面中的2-D矩形区域上。z确定每个顶点的平面上方的高度。如果只有一个z给出矩阵,然后将其绘制在网格上x=1:列(z),y=1:行(z)
。因此,的列z对应不同x值和行z对应不同y价值观
网格的颜色是通过线性缩放z值以适应当前颜色map的范围。使用caxis
和/或改变颜色map以控制外观。
(可选)网格的颜色可以独立于z通过提供彩色矩阵,c.
任何属性/值对都将直接传递给基础surfaceobject。完整的属性清单记录在表面属性.
如果第一个参数hax是一个轴句柄,然后绘制到此轴,而不是返回的当前轴gca
.
可选返回值h是createdsurface对象的图形句柄。
版权所有 © 2024 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号