2016-05-17 3 views
1

Во-первых, я новичок и не родной, говорю по-английски, извините.Вопросы о Potree/Three.js

В этот момент я работаю с несколькими (и разностными) облаками точек, загруженными на ту же страницу, с удивительной версией 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 (не ограничивающей коробки)?

В противном случае, как получить пространственную координату (p.e: Z), когда я даю остальные (p.e .: X и Y) в Potree или Three.js? Возможно ли автоматическое обнаружение этих максимумов и получение координат?

Большое спасибо, С уважением.

+0

Почему ограничивающая рамка точек неприемлема? – WestLangley

+0

Поскольку в некоторых случаях облако точек имеет ориентацию торможения относительно ограничивающей рамки. P.e .: Если я хочу измерить ширину куба с небольшим вращением, ограничительная рамка была создана с диагональной вершиной (плохая мера), вместо этого - боковыми точками (мерой хорошего ограничивающего прямоугольника). –

+0

Ограничительная коробка обеспечивает разумное приближение. Если ограничивающая сфера также неприемлема, каково ваше определение «максимальной ширины». – WestLangley

ответ

0

Вы можете получить максимальную ширину путем вычисления квадратным расстояния между каждой парой (х, г) точек в вашем облако точек

distanceSquared = (v1.x - v2.x) * (v1.x - v2.x) + (v1.z - v2.z) * (v1.z - v2.z); 

, а затем выбрать квадратный корень из максимального значения.

Максимальная высота - это наибольшая координата y точек.

+0

Да, но в вашем примере мы знаем все координаты точек, 'v1' и 'v2'. В моем реальном процессе все облака точек различны. Я имею в виду, что я не знаю никакой точки, есть какая-то функция в Three.js или Potree, которая позволяет получить координаты точек в функции одного условия? P.e .: if 'v1.y = v2.y = 0' позволяет получить точки в экстремумах ('v1.x', 'v1.z' и 'v2.x', 'v2.z'). –

+0

Прокрутите свои точки и вычислите только расстояние для подмножества пар точек, для которых 'v1.y = v2.y = 0'. – WestLangley

 Смежные вопросы

  • Нет связанных вопросов^_^