计算此机翼的法线向量

时间:2018-09-17 20:19:39

标签: matlab matrix vector geometry normals

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

Picture of the airfoil.

1 个答案:

答案 0 :(得分:3)

让我们假设您的机翼是封闭的。

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

这应该解决后缘问题...

我想您的数据为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标准化