javascript - 使用 three.js 折叠矩形以形成立方体

标签 javascript three.js

我正在尝试制作一个立方体,其表面有 6 个面,作为一个面可移动的立方体网。像这样:

enter image description here

上图中,有6张脸,一张脸(蓝色的)是可动的。

人们可以沿着它们的边缘将它们一起向上旋转以形成一个“网”。 一旦他们认为自己完成了,他们可以按下“折叠它”按钮——所有的边都旋转 90 度以创建立方体(或者如果他没有在适当的位置加入蓝色面,则可能不是立方体。)

下面是按下“折叠”按钮后的中间状态。

enter image description here

折叠面后应该是这样的:

enter image description here

这里给出对应的动画:http://www.mathematikus.de/10/

(不知何故该链接在 mac 上不起作用)

我不知道该怎么做。感谢您的帮助。

在此先感谢您。

最佳答案

您可以使用对象的层次结构。

var obj1 = new THREE.Mesh(...);
var obj2 = new THREE.Mesh(...);
obj1.add(obj2);

有一个很好的example它的。

因此,根据这个原理,我制作了折叠立方体的动画,如您的问题所示。当然,这不是最终的解决方案,这只是一个起点。

jsfiddle例子

更新:我更新了 fiddle 。您可以通过单击 PressMe 按钮开始折叠。使用 Tween.js 制作的动画(参见 foldTheCube() 函数)

关于javascript - 使用 three.js 折叠矩形以形成立方体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41320005/

相关文章:

javascript - 将 HTML5 视频标签分配给 webGL 纹理时的 CORS/跨域安全异常

javascript - 获取 Threejs 场景和相机方向以设置默认 View

javascript - 在 Three.js 中用灯光跟随鼠标位置

javascript - three.js 控制台错误 "scene.getObjectByName(...) is undefined"但一切似乎都很好?

javascript - 如何围绕其末端旋转 ThreeJS Object3D 对象?

javascript - 如何将lean()与 Mongoose 和 Bluebird 一起使用?

javascript - 使用 Cheerio 抓取网页

javascript - Node.js:提取网页的图像网址

javascript - 在基本的 vanilla js 页面中使用 systemjs

javascript - 如果我返回一个以 promise 作为对象的自定义映射数组,我该如何访问服务响应数据?