2026a

# isonormals


计算等值面顶点的法向量

函数库: TyVolumeVisualization

# 语法

n = isonormals(X,Y,Z,V,vertices)
n = isonormals(V,vertices)
n = isonormals(...,"negate")

# 说明

n = isonormals(X,Y,Z,V,vertices) 使用数据 V 的梯度计算顶点列表 vertices 中等值面顶点的法向量。数组 X、Y 和 Z 定义三维体 V 的坐标。计算的法向量在 n 中返回。


n = isonormals(V,vertices) 假定数组 X、Y 和 Z 定义为 X,Y,Z = meshgrid3(1:n,1:m,1:p),其中 (m,n,p) = size(V)。


n = isonormals(...,"negate") 对法向量求反(反转法向量方向)。

# 示例

使用不同类型的曲面法线的等值面

比较不同曲面法向量在光照等值面的视觉外观上的效果。在一种情况下,由用于绘制等值面的三角形定义法向量。在另一情况下,isonormals 函数使用体数据基于数据点的梯度计算顶点法向量。后一种方法通常会生成外观更平滑的等值面。

基于数据计算等值面顶点的法向量。

using TyVolumeVisualization
using TyPlot
pkg_dir = pkgdir(TyVolumeVisualization)
source_path = pkg_dir * "/examples/isonormals/0-data.jl"
include(source_path)
isonormals(data, verts)
867×3 Matrix{Float64}:
 -0.057049   -0.00606808  -0.109651
 -0.0602834  -0.00656109  -0.106725
 -0.057187   -0.0131538   -0.102514
 -0.0566143   0.00283557  -0.116627
 -0.0606945   0.00215806  -0.112808
 -0.0558844   0.0113667   -0.120789
 -0.0572664   0.0111063   -0.119451
  ⋮
  0.0190257  -0.00846097   0.0930029
  0.021183   -0.00125627   0.111143
  0.0229141   0.00484225   0.126027
  0.0241909   0.0105629    0.137671
  0.0250206   0.0163239    0.146078
  0.0361267  -0.00336772   0.104732
  0.0380062   0.00300297   0.119176

# 另请参阅

subvolume | reducevolume