Javascript 摄像机处于特定位置。3.js

Javascript 摄像机处于特定位置。3.js,javascript,camera,three.js,position,Javascript,Camera,Three.js,Position,我想把相机放在一个特定的位置,然后我要做的就是移动相机,使它适应你想知道的位置坐标,把它放在“更新”中 然后我写下这些值,以便在下次运行我的应用程序时定位相机。在console.log中,值为 x: 2.4457938219139463, y: 0, z: 17.37913738929295 然后在我的代码中设置新值 camera.position.set (2.4457938219139463, 0, 17.37913738929295) camera.lookAt (scene.posit

我想把相机放在一个特定的位置,然后我要做的就是移动相机,使它适应你想知道的位置坐标,把它放在“更新”中

然后我写下这些值,以便在下次运行我的应用程序时定位相机。在console.log中,值为

x: 2.4457938219139463, y: 0, z: 17.37913738929295
然后在我的代码中设置新值

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

然而,位置与之前放置的位置不同,相机似乎位于一个或多或少的近点,但不是设置在quice上方的点。问题是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


另外

设置后相机的位置是什么?@gaitat我想要这个相机的位置:after:所以差在第14位小数点处!!!这很容易是一个浮动错误。@gaitat但他如何解决这个问题,这个错误并没有想到它会在第14位小数点出现。。。或者给我一个解决方案或方法来将相机放置在我想要的某个点上?为什么你需要14位小数的精度?我不明白我的意思是我应该对每个坐标做些什么,例如:camera.position.set(x.toFixed(7)/1,y.toFixed(7)/1 z.toFixed(7)/1;)原则上,这意味着它特别是浮点数。如果您的应用程序在小数点后7-13位不重要,那么注意它就没有意义了。如果是,无论出于何种原因,它对您很重要,您可以使用特定的舍入方法。例如,这个:
x.toFixed(7)/1
函数render(){renderer.render(场景,摄影机);((camera.position.y).toFixed(7)/1),((camera.position.z).toFixed(7)/1));
2.44579380000034
2.4457938000004398

0.1
0.010000000000000002
0.0010000000000000002
0.00010000000000000003
0.000010000000000000004
0.0000010000000000000004