Вниманию специалистов Three.JS! Нужна помощь в отображении точек и лиц

Любая помощь от этого великого сообщества была бы таким благословением. Недавно я пытался понять, как построить набор точек и граней, взятых из XML-файла, с помощью Three.js. Точки выглядят примерно так:

<P id="1">472227.25640192 2943287.51179465 200.138787</P>
<P id="2">472232.14363148 2943288.56768013 200.129142</P>
<P id="3">472237.03086105 2943289.62356560 200.119496</P>

и лица выглядят так:

<F>1021 1020 1061</F>
<F>640 754 641</F>
<F>1534 1633 1535</F>

Имейте в виду, что этих граней и точек тысячи и каждая из них имеет 3 числа. Я преобразовал xml в json и выполнил весь необходимый синтаксический анализ, но когда я пытаюсь сделать образец некоторых точек в виде строк в Three.js, я не получаю ничего, кроме черного экрана. Вот что я пробовал. Возможно ли что-то вроде того, что я пытаюсь сделать с three.js? Есть ли лучшая альтернатива?

var renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );

var camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 500 );
camera.position.set( 0, 0, 100 );
camera.lookAt( 0, 0, 0 );

var scene = new THREE.Scene();

var material = new THREE.LineBasicMaterial( { color: 0x0000ff } );

var geometry = new THREE.Geometry();
geometry.vertices.push(new THREE.Vector3( 472227.25640192, 2943287.51179465, 200.138787) );
geometry.vertices.push(new THREE.Vector3( 472232.14363148, 2943288.56768013, 200.129142) );
geometry.vertices.push(new THREE.Vector3( 472237.03086105, 2943289.62356560, 200.119496) );

var line = new THREE.Line( geometry, material );
scene.add( line );
renderer.render( scene, camera );

Спасибо, любая помощь приветствуется.


person Charles Pettis    schedule 03.12.2019    source источник
comment
Ваши координаты помещают линии за пределы области просмотра.   -  person JDunken    schedule 04.12.2019


Ответы (1)


Вершины, которые вы определяете, помещают линию за пределы области просмотра. Например, изменить координаты на

geometry.vertices.push(new THREE.Vector3(1, 2, 0));
geometry.vertices.push(new THREE.Vector3(3, 3, 0));
geometry.vertices.push(new THREE.Vector3(5, 6, 0));

и вы увидите линию.

-or-

Если значения, с которыми вы работаете, такие же большие, как в вашем примере, переместите камеру waaaaaay назад по оси z. (вы также можете масштабировать значения до чего-то более управляемого)

person JDunken    schedule 03.12.2019