0

我想从以下数据集创建一个 3D 体积。Matlab 中是否有一个函数可以帮助或者我需要构建更多的数据顶点?尝试了fill3()但这只会创建顶部和底部表面,而不是侧面。

latitude    longitude   lowerAltitude   upperAltitude
-73.8124    40.6422        100             200 
-73.8119    40.6485        100             200 
-73.8377    40.6597        100             1500 
-73.86      40.6671        100             1600 
-73.8849    40.6377        100             1800 
-73.875     40.6302        100             1800 
-73.8525    40.6518        100             1600 
-73.8401    40.6539        100             1500 
-73.8124    40.6422        100             200 

问候。BSL

4

2 回答 2

0

您可以创建您拥有的点的凸包并可视化该表面。请注意,您需要重新排列数据,以便为当前拥有的每条线创建两个点。例如,您示例中的第一行,需要分成两点,如下所示。三列将是您的 X、Y 和 Z。

latitude longitude Altitude -73.8124 40.6422 100 -73.8124 40.6422 200
于 2017-09-15T12:58:16.450 回答
-1

后记。在充分考虑了我在 3d 体积 (X,Y,Z) 内检测点 (x,y,z) 的目标后,我决定采用简单的两步方法。1)用多边形检测X,Y周界中点的存在。2) 如果 x,y 点在 (X,Y, Z=Z0) 区域的底部周界内,则测试 min(Z) <= z <= max(Z),其中 Z = f( X ,Y) 与 X,Y 点的轮廓一样。除非其他人有更优雅的解决方案,否则必须这样做。顺便说一句,Matlab 中的 contour() fxn 并不是很疯狂。但是,对我的上边界高度(带纬度、经度)使用分散插值不适用于 Delaunay fxn(无效的 TRI 输出)。

于 2017-09-19T12:41:18.467 回答