【问题标题】:Store current view in cookie将当前视图存储在 cookie 中
【发布时间】:2012-06-02 01:59:16
【问题描述】:

我们正在使用 three.js 来显示来自 MRI 测量的胃内容物的 3D 切片。颜色是近似浓度;每个气泡都是一个体素,即一个 3D 像素。使用左侧的菜单加载。

http://menne-biomed.de/uni/3d/

(可以作为示例代码使用)

顶部的平坦表面(旋转图像)是重力引起的膳食液位。

我们希望将当前视图存储在 cookie 中,以便用户在返回后获得相同的视角。但是,我无法确定将哪个矩阵存储在 cookie 中。

我读过 https://github.com/mrdoob/three.js/issues/1188#issuecomment-3666286

但我找不到要存储在 cookie 中的矩阵。我发现的那些在旋转时不会改变。 请注意,我知道如何使用 cookie,所以这是一个 THREE.js 问题,与通用 javascript 编程无关。

【问题讨论】:

  • Cookie 限制为 4K 字节。不是很好的存储介质。
  • 4*4 矩阵需要多少字节,四舍五入,需要多少?
  • 使用 localstorage 怎么样?您需要序列化您在字符串中使用的任何数据,如果您能够使用 WebGL,应该没什么大不了的。
  • 使用 cookie 不是问题:找到要存储的内容。我已经编辑了这个问题。本地存储也可以,但我的问题与要使用的矩阵有关,而不是 cookie。

标签: javascript three.js


【解决方案1】:

如果只是你想保存的相机坐标,你可以这样做:

var string = JSON.stringify( [
    camera.position.x,
    camera.position.y,
    camera.position.z,
    camera.rotation.x,
    camera.rotation.y,
    camera.rotation.z
] );

然后根据保存的数据设置相机:

var array = JSON.parse( string );
camera.position.x = array[ 0 ];
camera.position.y = array[ 1 ];
camera.position.z = array[ 2 ];
camera.rotation.x = array[ 3 ];
camera.rotation.y = array[ 4 ];
camera.rotation.z = array[ 5 ];

【讨论】:

  • 这就是我问的原因;我已经尝试过了,但问题是这些值始终为 0。尝试使用 console.log(camera.rotation.x,camera.rotation.y, ..., in animate)。
  • 对不起,我没有意识到你已经尝试过了。不过这应该可行,您一定是做错了什么,并且根据您分享的信息,我猜不出可能是什么。
  • 你是对的。我忘记正确更新轨迹球摄像头了,结果碍事了。
猜你喜欢
  • 2012-06-23
  • 1970-01-01
  • 1970-01-01
  • 2015-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-13
  • 1970-01-01
相关资源
最近更新 更多