2015-01-15 8 views
0

Привет, у меня есть плоскость в three.js с шириной 5000 и высотой 5000. Со следующим кодом я конвертирую 3d-координаты в 2d, более конкретно я получаю верхнюю левую точку плоскости и нижней правой. Я инициализирую свою камеру с положением x: 0, y: 0, z: 70000 и вращением x: 0, y: 0, z: 0.конвертировать 3d координаты в координаты экрана 2d (плоскость сетки)

координаты, которые я получаю, если я не повернуть мою камеру (с помощью элементов управления орбиты) являются правильными:

enter image description here

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

var vec3 = new THREE.Vector3(); 
    vec3.set(_that.model.position.x - 2500, _that.model.position.y + 2500, _that.model.position.z); // top left corner 
    vec3.project(_that.vise.camera); 

var percX = Math.abs(vec3.x + 1)/2; 
var percY = Math.abs(-vec3.y + 1)/2; 

this.topLeft = { 
    x : percX * _that.vise.options.generic.container.clientWidth, 
    y : percY * _that.vise.options.generic.container.clientHeight 
} 

var vec4 = new THREE.Vector3(); 
    vec4.set(_that.model.position.x + 2500, _that.model.position.y - 2500, _that.model.position.z); // top left corner 
    vec4.project(_that.vise.camera); 

var percX = Math.abs(vec4.x + 1)/2; 
var percY = Math.abs(-vec4.y + 1)/2; 

this.bottomRight = { 
    x : percX * _that.vise.options.generic.container.clientWidth, 
    y : percY * _that.vise.options.generic.container.clientHeight 
} 

this.projectedVector = { 
    x : Math.abs(this.topLeft.x - this.bottomRight.x), 
    y : Math.abs(this.topLeft.y - this.bottomRight.y) 
} 

ответ

0

Посмотрите на это:

http://www.threejsgames.com/extensions/#threex.objcoord

Он включает в себя перевод 3D на экран установки, это то, что вы хотите?

+0

он не работает с текущей версией (r70) из three.js – Syd

+0

, если я не делаю что-то неправильно ... Я пробовал использовать это расширение – Syd

+1

Проверьте свою консоль, там некоторые изменения, поэтому вам нужно Обновите это. – mcode

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