Matlab与三维体积
我想从以下数据集创建一个三维体积。Matlab中有没有一个函数可以帮助我,或者我需要构造更多的数据顶点?尝试了fill3(),但这仅创建顶部和底部曲面,而不是侧面Matlab与三维体积,matlab,3d,latitude-longitude,volumes,Matlab,3d,Latitude Longitude,Volumes,我想从以下数据集创建一个三维体积。Matlab中有没有一个函数可以帮助我,或者我需要构造更多的数据顶点?尝试了fill3(),但这仅创建顶部和底部曲面,而不是侧面 latitude longitude lowerAltitude upperAltitude -73.8124 40.6422 100 200 -73.8119 40.6485 100 200 -73.8377 40.659
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您可以创建一组您拥有的点,并可视化该曲面。请注意,您需要重新排列数据,以便为当前拥有的每条线创建两个点。例如,示例中的第一行需要拆分为两点,如下所示。这三列将是您的X、Y和Z
附言。在充分考虑了我在三维体积(x,y,z)内检测点(x,y,z)的目标后,我决定采用一种简单的两步方法。1) 使用inpolygon检测X、Y周长中是否存在该点。2) 如果x,y点位于区域底部周长内(x,y,Z=Z0),则测试最小值(Z)。您能解释该数据代表什么吗?(我不清楚它的体积大小)。如果可以将其转换为体素栅格,则可以使用此功能。假设(完成后)是以较低高度为底面的空域体积,而上表面高度可变。我想我可以为侧面创建一组面板,每个面板描述为P[j]=[lon[j]lat[j]lowAlt[j];lon[j+1]lat[j+1]lowAlt[j+1];lon[j+1]lat[j+1]upAlt[j+1];lon[j]lat[j]upAlt[j];lon[j]lat[j]lowAlt[j]<代码>补丁应该有帮助。请参阅:补丁建议。我可以用它来创建我的面板。但是,要创建3D对象,我不需要将面板“缝合”在一起吗?最终目标是拥有一个具有节点连通性的体积,即s.t。我可以测试该体积内是否存在3d点(纬度、经度、高度)。我可以通过切片测试在2D中实现这一点,但这是一件痛苦的事情。如果你有映射工具箱,你可能会发现它很有用,它似乎在Matlab中使用了n空间的lat/long/alt数据凸包,是的。但周长的二维投影并非在所有情况下都是凸的。有些具有凹面,因此凸面外壳将“覆盖”实际边界周围的周长,并包围实际周长之外的空间。确定。“冲浪”建议取得了进展。问题:[x,y,z]=球体(20)的示例为x,y,z创建了三个21 x 21矩阵。这些都被surf()很好地接受。有什么方法可以获取我的数据并创建所需的矩阵吗?
latitude longitude Altitude
-73.8124 40.6422 100
-73.8124 40.6422 200