确定一个翼型的弧度和厚度-给定xy坐标
78次浏览(过去30天)
显示旧的注释
亲爱的所有,
我有翼型坐标,在一个封闭多边形的形式(xy点给出如下)。
我需要一个函数来确定多边形中每个点(顶点)的最大可能内切圆。
Ps:顶点处的内切圆定义为在多边形内部绘制且与顶点相切的最大可能圆。
下面给出的翼型包含33个点,我需要33个内切圆…
否则需要确定的弧度和厚度分布的翼型参考下面的评论。
任何帮助都非常感激。
提前谢谢你,
维贾伊·阿南德
%翼型坐标
Xy = [1.00000 0.94908 0.89816 0.79638 0.69491 0.59377 0.49322 0.39328 0.29389 0.14562 0.09650 0.07203 0.04764 0.02338 0.01143 0.00000 0.01330 0.02596 0.05095 0.07573 0.10048 0.14992 0.19932 0.29821 0.39752 0.49722 0.59742 0.69804 0.79883 0.89957 0.94979 1.00000;
0.00000 0.02835 0.05669 0.11138 0.15658 0.19180 0.20853 0.20678 0.18805 0.15733 0.13473 0.10764 0.09134 0.07255 0.04976 0.03287 0.00000 -0.02457 -0.02966 -0.02934 -0.02254 -0.01473 0.00237 0.02098 0.05519 0.07642 0.08566 0.07942 0.06019 0.03596 0.01324 0.00637 0.00000];
情节(xy (1:), xy(2:),“啊——”,“线宽”,2);网格;轴相等;
答案(2)
为副总经理
2021年9月30日
这并不是一种很好的方式,但我更习惯于滥用图像处理工具,而不是多义词()等。提到Voronoi图表,我认为距离地图将是一个不错的开始。
轮廓线= [1.00000 0.94908 0.89816 0.79638 0.69491 0.59377 0.49322 0.39328 0.29389 0.14562 0.09650 0.07203 0.04764 0.02338 0.01143 0.00000 0.01330 0.02596 0.05095 0.07573 0.10048 0.14992 0.19932 0.29821 0.39752 0.49722 0.59742 0.69804 0.79883 0.89957 0.94979 1.00000;
0.00000 0.02835 0.05669 0.11138 0.15658 0.19180 0.20853 0.20678 0.18805 0.15733 0.13473 0.10764 0.09134 0.07255 0.04976 0.03287 0.00000 -0.02457 -0.02966 -0.02934 -0.02254 -0.01473 0.00237 0.02098 0.05519 0.07642 0.08566 0.07942 0.06019 0.03596 0.01324 0.00637 0.00000];
步长= 0.0001;有效分辨率%
Xrange = [-0.1 1.1];
Yrange = [-0.1 0.25];
%使用虚拟图像显示来生成配置文件的图像
X = xrange(1):步长:xrange(2);
Y = yrange(1):步长:yrange(2);
H = image(xrange,yrange,ones(numel(y),numel(x)));
L = images.roi.Polygon(gca);
L.Position = profileline.';
mask = ~createMask(L);
从距离地图的山脊线找到坎伯线坐标。
由于前缘角度的原因,这只是一个不完整的解决方案
Dmap = bwdist(掩码);
[~,idx] = max(dmap,[],1);
1 = [x;y (idx)];
%使用初始估计值来找到平分剖面的位置
%,这样就可以估计前沿
[~,breakpoint] = max(camberline1(2,:));
断点= round(Breakpoint /2);%避免浅斜坡
[~,idx] = max(dmap(:,1:断点),[],2);
Camberline2 = [x(idx);y);
用于演示的% plot估计
次要情节(2,1,1)
情节(profileline (1:), profileline (2:));持有在;网格在
情节(camberline1 (1:), camberline1 (2:)“:”);
情节(camberline2 (1:), camberline2 (2:)”乙:“);
xlim xrange ()
ylim (yrange)
%清理并合并估计
camberline1(:,camberline1(2,:)==yrange(1)) = NaN;
camberline2(:,camberline2(1,:)==xrange(1)) = NaN;
camberline2(:,camberline2(1,:)==x(断点))= NaN;
Camberline = [camberline2 camberline1(:,断点+1:结束)];
合并估计百分比
次要情节(2,1,2)
情节(profileline (1:), profileline (2:));持有在;网格在
情节(camberline (1:), camberline (2:)“b——”);
xlim xrange ()
ylim (yrange)
如前所述,前缘区域有问题。我怀疑这两种估计在这一区域都是正确的,但第二种估计看起来稍微合理一些,我想我至少证明了分段解决方案可能是一种选择。我需要更多的时间来思考一个更有力的方法。