2015-08-02 8 views
2

Я хочу поставить камеру в определенном положении, то, что я делаю, это переместить камеру и адаптировать его к позиции, которую вы хотите знать координаты поместить это в «обновлении»камера в определенном положении. Three.js

console.log (camera.position); 

затем я пишу эти значения, чтобы поместить камеру в следующий раз, когда вы запускаете мое приложение, например. в console.log значения были

x: 2.4457938219139463, y: 0, z: 17.37913738929295 

то в моем коде я установил новые значения.

camera.position.set (2.4457938219139463, 0, 17.37913738929295) 
camera.lookAt (scene.position); 

и ОДНАКО, позиции не такие же, как поместить ранее, камера выглядит находится в более или менее близком пункте, но не один набор выше quice

+0

Какова позиция камеры после ее установки? – gaitat

+0

@gaitat позиция, в которой я хочу эту камеру: http://www.subirimagenes.com/imagen-1-9431430.html после: http://subefotos.com/ver/?6b6705201a100bcf6d5d8f492f163d03o.png –

+0

поэтому разница в 14-я десятичная цифра !!! Это может быть плавающей ошибкой. – gaitat

ответ

0

Проблема является Javascript точности с плавающей точкой - 7 цифр после точки, если 32OS и 13 цифр после точки, если 64OS. Таким образом, вам не нужно использовать точность более 7 цифр, и вам нужно использовать раунд. Некоторые, как это - lat.toFixed(7)/1;

Смотрите этот вывод:

код

var x = 2.44579380000034; 
var y = 0.0000000000001; 

console.log(x); 
console.log(x+y); 

var x = 0.1; 
console.log(x); 
console.log(x*x); 
console.log(x*x*x); 
console.log(x*x*x*x); 
console.log(x*x*x*x*x); 
console.log(x*x*x*x*x*x); 

выход

2.44579380000034 
2.4457938000004398 

0.1 
0.010000000000000002 
0.0010000000000000002 
0.00010000000000000003 
0.000010000000000000004 
0.0000010000000000000004 

http://jsfiddle.net/ssznwn4m/

P.S. https://en.wikipedia.org/wiki/Double-precision_floating-point_format

+0

Я не понимаю, что я должен делать с каждой координатой, например: camera.position.set (x.toFixed (7) /1.y.toFixed (7)/1 z.toFixed (7)/1;) –

+0

Извините мое невежество –

+0

В принципе, это означает, что это особенно числа с плавающей запятой. И что, если ваше приложение не является важной точностью после 7-13 знаков после запятой, нет смысла обращать на это внимание. Если по какой-либо причине это важно для вас, вы можете использовать определенный метод округления. Например, это: 'x.toFixed (7)/1'. –

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