【发布时间】:2016-05-17 22:01:03
【问题描述】:
首先,我是新手,非英语母语,对不起。
此时,我使用很棒的 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 ) ;
但是我的点是预定义的...我的问题是如何获得 PointCloud 的最大高度或宽度(不是边界框)?
否则,当我在 Potree 或 Three.js 中给其他人(p.e.:X 和 Y)时,如何获得空间坐标(p.e:Z)?是否有可能自动检测到这个最大值并获取她的坐标?
非常感谢, 最好的问候。
【问题讨论】:
-
为什么点的边界框不可接受?
-
因为在某些情况下,点云相对于边界框的方向不匹配。 P.e.:如果我想用很少的旋转来测量立方体的宽度,边界框是用对角顶点创建的(不好的测量),而不是横向点(好的边界框测量)。
-
边界框提供了一个合理的近似值。如果边界球也不可接受,您对“最大宽度”的定义是什么。
-
假设你想测量一个矩形表的宽度,我需要检测一个极右点。为此,我使用边界框 (
viewer.getBoundingBoxGeo()),我有 X、Y 和 Z 最小值和最大值。然后(我有一个问题)我会检测到左垂直点。在这种情况下,边界框只有在矩形表格与边界框的空间坐标匹配时才有效。我认为... -
正确...您可以通过计算每对 ( x, z ) 点之间的平方距离并选择最大值的平方根来获得最大宽度... 最大高度只是点中最大的 y 坐标。 (y 在三个.js 中)。
标签: javascript three.js point-clouds