首页 > 解决方案 > 计算此翼型的法线向量

问题描述

给定翼型点的 61x2 矩阵中的 XY 坐标数据集。我将如何沿着翼型的每个点创建法线向量。到目前为止,我已经绘制了翼型:

翼型图。

标签: matlabmatrixvectorgeometrynormals

解决方案


让我们假设您的翼型是闭合的。

要计算每个点的法线,您可以平均每个段的法线。

这应该解决后沿问题……</p>

我想你的数据是x, y

xtmp1 = [x, x(1)]
ytmp1 = [y, y(1)]
xtmp2 = [x(end), x]
ytmp2 = [y(end), y]
nx =   (diff(ytmp1)+diff(ytmp2))/2.0
ny =  -(diff(xtmp1)+diff(xtmp2))/2.0

nx将包含法线的 x 分量,ny并将包含法线的 y 分量

当然,如果你想要等长的法线,你可以标准化结果

ntmp = 1.0 ./ sqrt(nx.*nx+ny.*ny)
nx = nx .* tmp
ny = ny .* tmp

如建议的那样,您还可以标准化每个段的正常值,然后平均

xtmp1 = [x, x(1)]
ytmp1 = [y, y(1)]
xtmp2 = [x(end), x]
ytmp2 = [y(end), y]
nxF =   diff(ytmp1)    
nyF =  -diff(xtmp1)
nxB =   diff(ytmp2)
nyB =  -diff(xtmp2)
ntmp = 1.0 ./ sqrt(nxF.*nxF+nyF.*nyF)
nxF = nxF .* tmp
nyF = nyF .* tmp
ntmp = 1.0 ./ sqrt(nxB.*nxB+nyB.*nyB)
nxB = nxB .* tmp
nyB = nyB .* tmp
nx = (nxF+nxB)/2.0
ny = (nyF+nxB)/2.0

然后归一化nxny


推荐阅读