文档

isonormals

计算等值面顶点的法线

语法

n = isonormals (X, Y, Z, V,顶点)
n = isonormals (V,顶点)
n = isonormals (V, p)
n = isonormals (X, Y, Z, V, p)
n = isonormals(…,“否定”)
isonormals (V, p)
isonormals (X, Y, Z, V, p)

描述

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

n = isonormals (V,顶点)假设阵列XY,Z被定义为[X, Y, Z] = meshgrid (1: n, 1: m, 1: p)在哪里大小(m, n, p) = (V)

n = isonormals (V, p)n = isonormals (X, Y, Z, V, p)从由句柄标识的补丁的顶点计算法线p

n = isonormals(…,“否定”)否定(反转方向)法线。

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

例子

全部折叠

比较不同的表面法线对视觉外观的光等表面的影响。在一种情况下,用于绘制等值面的三角形定义了法线。另一方面,等法线函数利用体积数据根据数据点的梯度计算顶点法线。后一种方法一般能产生表面更光滑的等值面。

定义一个三维体数据数组。

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

从体积数据画一个等值面,并添加灯光。这个等值面使用三角形法线。

图subplot(1,2,1) fv =等值面(data,.5);p1 =补丁(阵线,“FaceColor”“红色”“EdgeColor”“没有”);视图(3)daspect([1, 1, 1])轴camlight camlight(-80、-10)照明高洛德标题(“三角形法线”

使用从体积数据计算的法线绘制相同的亮等值面。

Subplot (1,2,2) fv = isosurface(data,.5);p2 =补丁(阵线,“FaceColor”“红色”“EdgeColor”“没有”);等法线(数据,p2)视图(3)daspect([1 1 1])轴camlight camlight(-80、-10)照明高洛德标题(“数据法线”

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

之前介绍过的R2006a

这个话题有用吗?