主要内容

isonormals

计算等值面顶点的法线

语法

n =等线(X,Y,Z,V,顶点)
n =等距法线(V,顶点)
n =等范数(V,p)
n =等正规(X,Y,Z,V,p)
N = isonorals(…,'negate')
isonormals (V, p)
isonormals (X, Y, Z, V, p)

描述

n =等线(X,Y,Z,V,顶点)从顶点表中计算等值面顶点的法线,顶点,利用数据的梯度V.数组XY,Z定义体积的坐标V.计算出来的法线返回n

n =等距法线(V,顶点)假设数组XY,Z定义为[X,Y,Z] = meshgrid(1:n,1:m,1:p)在哪里[m,n,p] = size(V)

n =等范数(V,p)而且n =等正规(X,Y,Z,V,p)从句柄标识的补丁的顶点计算法线p

N = isonorals(…,'negate')颠倒法线方向。

isonormals (V, p)而且isonormals (X, Y, Z, V, p)设置VertexNormals句柄标识的补丁的属性p到计算的法线,而不是返回值。

例子

全部折叠

比较不同表面法线对点燃等值面的视觉外观的影响。在一种情况下,用于绘制等值面的三角形定义法线。在另一种方法中,等法线函数使用体积数据来根据数据点的梯度计算顶点法线。后一种方法通常会产生一个看起来更平滑的等值面。

定义一个卷数据的3-D数组。

数据= cat(3,[0 .2 0;0 .3 0;0 0 0],...(。1 .2 0;0 10 0;.2 .7 0],...[0 .4 .2;.2 .4 0;。1 1 0]);数据= interp3(数据,3,“立方”);

根据体积数据绘制等值面,并添加灯光。等面线使用三角形法线。

Tiledlayout (1,2) nexttile fv = isosurface(data,.5);P1 = patch(fv,“FaceColor”“红色”“EdgeColor”“没有”);查看(3)daspect([1,1,1])轴Camlight Camlight(-80,-10)照明高洛德标题(“三角形法线”

图中包含一个轴对象。标题为Triangle Normals的axes对象包含一个类型为patch的对象。

用从体积数据中计算出的法线画出相同的点燃等值面。

Nexttile fv = isosurface(数据,.5);P2 = patch(fv,“FaceColor”“红色”“EdgeColor”“没有”);等线(data,p2)视图(3)daspect([1 1 1])轴Camlight Camlight(-80,-10)照明高洛德标题(“数据法线”

图中包含2个轴对象。标题为Triangle Normals的Axes对象1包含一个类型为patch的对象。标题为Data Normals的Axes对象2包含一个patch类型的对象。

这些等值面说明了三角形和数据法线之间的区别。

扩展功能

版本历史

R2006a之前介绍

Baidu
map