我想从以下数据集创建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
答案 0 :(得分:0)
您可以创建convex hull个点,并可视化该表面。请注意,您需要重新排列数据,为您当前拥有的每一行创建两个点。例如,示例中的第一行需要按如下方式分为两点。三列将是您的X,Y和Z。
latitude longitude Altitude
-73.8124 40.6422 100
-73.8124 40.6422 200
答案 1 :(得分:-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并不是很疯狂。但是,对于我的上边界高度(使用lat,lon)使用散乱插值将不适用于Delaunay fxn(无效的TRI输出)。