Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Potree/Three.js测量问题_Javascript_Three.js_Point Clouds - Fatal编程技术网

Javascript Potree/Three.js测量问题

Javascript Potree/Three.js测量问题,javascript,three.js,point-clouds,Javascript,Three.js,Point Clouds,首先,我是新手,非英语母语,对不起 在这一刻,我使用awesome Potree 1.4RC在同一页面中加载了多个(和不同的)点云,但我想自动读取点云的高度,我的意思是,读取云的所有点并检测最大维度。我曾与: Var Potree.Measure areaMeasurement = new ( ) ; areaMeasurement.addMarker (new THREE.Vector3 (0, 0 , 0)) ; areaMeasurement.addMarker (new THREE.Ve

首先,我是新手,非英语母语,对不起

在这一刻,我使用awesome Potree 1.4RC在同一页面中加载了多个(和不同的)点云,但我想自动读取点云的高度,我的意思是,读取云的所有点并检测最大维度。我曾与:

Var Potree.Measure areaMeasurement = new ( ) ;
areaMeasurement.addMarker (new THREE.Vector3 (0, 0 , 0)) ;
areaMeasurement.addMarker (new THREE.Vector3 ( -10 , 0 , 0 ) ) ;
viewer.measuringTool.addMeasurement ( areaMeasurement ) ;
但我的观点是预先确定的。。。我的问题是如何获得点云(非边界框)的最大高度或宽度

否则,当我在Potree或Three.js中给出其他坐标(p.e:X和Y)时,如何获得空间坐标(p.e:Z)?是否可以自动检测这个最大值并获得她的坐标

非常感谢,
致以最诚挚的问候。

通过计算点云中每对点(x,z)之间的平方距离,您可以获得最大宽度

distanceSquared = ( v1.x - v2.x ) * ( v1.x - v2.x ) + ( v1.z - v2.z ) * ( v1.z - v2.z );
然后选择最大值的平方根


最大高度只是点的最大y坐标。

通过计算点云中每对点(x,z)之间的平方距离,可以获得最大宽度

distanceSquared = ( v1.x - v2.x ) * ( v1.x - v2.x ) + ( v1.z - v2.z ) * ( v1.z - v2.z );
然后选择最大值的平方根


最大高度只是点的最大y坐标。

为什么不接受点的边界框?因为在某些情况下,点云相对于边界框的方向不匹配。P.e.:如果我想测量立方体的宽度而不需要太多的旋转,边界框是用对角顶点(不好的测量)而不是侧边点(好的边界框测量)创建的。边界框提供了一个合理的近似值。如果边界球体也是不可接受的,那么您对“最大宽度”的定义是什么?假设您想要测量矩形桌子的宽度,我需要检测一个最右边的点。为此,我使用边界框(
viewer.getBoundingBoxGeo()
),我有X、Y和Z最小值和最大值。然后(我有一个问题)我将检测左垂直点。在这种情况下,仅当矩形表与边界框的空间坐标匹配时,边界框才起作用。我认为……正确。。。通过计算每对点(x,z)之间的平方距离并选择最大值的平方根,可以获得最大宽度。。。“最大高度”只是点的最大y坐标。(y在three.js中向上)。为什么点的边界框不可接受?因为在某些情况下,点云相对于边界框具有不匹配的方向。P.e.:如果我想测量立方体的宽度而不需要太多的旋转,边界框是用对角顶点(不好的测量)而不是侧边点(好的边界框测量)创建的。边界框提供了一个合理的近似值。如果边界球体也是不可接受的,那么您对“最大宽度”的定义是什么?假设您想要测量矩形桌子的宽度,我需要检测一个最右边的点。为此,我使用边界框(
viewer.getBoundingBoxGeo()
),我有X、Y和Z最小值和最大值。然后(我有一个问题)我将检测左垂直点。在这种情况下,仅当矩形表与边界框的空间坐标匹配时,边界框才起作用。我认为……正确。。。通过计算每对点(x,z)之间的平方距离并选择最大值的平方根,可以获得最大宽度。。。“最大高度”只是点的最大y坐标。(y在three.js中向上)。是的,但在您的示例中,我们知道所有点的坐标,“v1”和“v2”。在我的真实过程中,所有的点云都是不同的。我的意思是,我不知道任何点,在Three.js或Potree中有一些函数,可以在一个条件下获得点坐标?P.e.:如果“v1.y=v2.y=0”允许获取极值点('v1.x'、'v1.z'和'v2.x'、'v2.z')。循环遍历点,只计算
v1.y=v2.y=0
的点对子集的距离。是的,但在您的示例中,我们知道所有点坐标,'v1'和'v2'。在我的真实过程中,所有的点云都是不同的。我的意思是,我不知道任何点,在Three.js或Potree中有一些函数,可以在一个条件下获得点坐标?P.e.:如果“v1.y=v2.y=0”,则允许获取极值点('v1.x'、'v1.z'和'v2.x'、'v2.z')。循环遍历点,仅计算
v1.y=v2.y=0
的点对子集的距离。