两架飞机之间的填充区域3 d图
71(30天)
显示旧的评论
接受的答案
嘉里蒂迈克
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评论
答案(1)
蒂姆•杰克曼
2015年9月3日
一个选择是创建一个等值面,但为此你需要将数据转换为三维网格数据。这个链接有一些更多的信息和一些例子:
根据你提供的例子,和快速的方法来填补两个表面之间的空间会应用补丁。例如:
冲浪(峰值)
持有在
冲浪(峰值+ 5)
持有从
现在将一个多边形沿着边缘通过提供X, Y,和Z坐标以及你想要的颜色:
补丁([1;1;49;49],[1;1;1;1],[0、5、5、0],[1,0,0))
你可以获得更多的信息在补丁对象: