两架飞机之间的填充区域3 d图

71(30天)
我想或多或少的阴谋一个无形的3 d图。我知道,我知道。有一个简单的方法来填补之间的空间?例如,如果我有
冲浪(峰值)
持有
冲浪(峰值+ 5)
持有
我怎么能把两架飞机就像一卷吗?
非常感谢你的时间

接受的答案

嘉里蒂迈克
嘉里蒂迈克 2015年9月4日
蒂姆的等值面方法建议是可能的。这里有一个例子,你会这样做。它有点涉及使用相当多的内存:
% % 2面开始
nx = 25;
纽约= 25;
新西兰= 25;
(x, y) = meshgrid (linspace (2, 2, nx) linspace(2, 2,纽约));
z1 =山峰(x, y);
z2 =山峰(x, y) + 5;
冲浪(x, y, z1);
持有
冲浪(x, y, z2)
% %创建3 d网格包含距离最近的表面
(y3, x3, z3) = ndgrid (linspace(2, 2,纽约),linspace (2, 2, nx) linspace(新西兰)-10年,15日);
v = 0(大小(z3));
r = 1:纽约
c = 1: nx
s = 1:新西兰
d1 = z3 (r、c、s) - z1 (r、c);
d2 = z2 (r、c) - z3 (r、c、s);
如果d1 < 0
v3 (r、c、s) = d1;
elseifd2 < 0
v3 (r、c、s) = d2;
其他的
v3 (r、c、s) = min (d1, d2);
结束
结束
结束
结束
% %创建等值面
p =[补丁(等值面(x3, y3、z3 v3, 0)),
补丁(isocaps (x3, y3、z3 v3, 0)));
z3 isonormals (x3, y3, v3, p (1))
集(p,“FaceColor”,“黄色”)
集(p,“EdgeColor”,“没有”)
集(p,“FaceLighting”,“古尔戈”)
视图(3)
camlight正确的
你需要两个等值面和isocaps那里。内的等位面命令创建了部分体积(冲浪创建相同的部分),而isocaps创建沿着边界地区。你也可以从这个例子结合isocaps物体表面是这样的:
冲浪(x, y, z1);
持有
冲浪(x, y, z2)
z3 isocaps (x3, y3, v3, 0);
3评论
Ksenia Shukhin
Ksenia Shukhin 2022年5月31日
嗨,迈克!
我用你的代码创建一个3 d对象,谢谢。但现在的问题是如何创建stl文件。也许你可以帮助吗?

登录置评。

答案(1)

蒂姆•杰克曼
蒂姆•杰克曼 2015年9月3日
一个选择是创建一个等值面,但为此你需要将数据转换为三维网格数据。这个链接有一些更多的信息和一些例子:
根据你提供的例子,和快速的方法来填补两个表面之间的空间会应用补丁。例如:
冲浪(峰值)
持有
冲浪(峰值+ 5)
持有
现在将一个多边形沿着边缘通过提供X, Y,和Z坐标以及你想要的颜色:
补丁([1;1;49;49],[1;1;1;1],[0、5、5、0],[1,0,0))
你可以获得更多的信息在补丁对象:

类别

找到更多的在照明、透明度和阴影帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!