如何使用键盘拉伸和压缩立方体的长度,宽度和高度?

时间:2019-05-17 07:18:37

标签: javascript three.js

调整立方体的大小时,一个面不会移动,而其他面会更改位置或大小。高度/深度/宽度需要根据键盘进行拉伸或压缩。

我已经建立了一个立方体,但是我只能修改立方体的位置

cube.position.y -= 1

,但高度,深度,宽度无法更改。

cube.geometry.parameters.height += 1
document.addEventListener("keydown", onDocumentKeyDown, false);
            function onDocumentKeyDown(event) {
                var keyCode = event.which;
                // up
                if (keyCode == 87) {
                    mesh.geometry.parameters.height += 1;
                    // down
                } else if (keyCode == 83) {
                    mesh.position.y -= 1;
                    // left
                } else if (keyCode == 65) {
                    mesh.position.x -= 1;
                    // right
                } else if (keyCode == 68) {
                    mesh.position.x += 1;
                    // space
                } else if (keyCode == 32) {
                    mesh.position.x = 0.0;
                    mesh.position.y = 0.0;
                }
                render();
            };

所需的效果如下所示:http://product-cdn-tagging.oss-cn-beijing.aliyuncs.com/test/3d.gif

1 个答案:

答案 0 :(得分:3)

创建几何后,修改parameters属性无效。如果要变换立方体的宽度,高度或深度,请改用Object3D.scale。下面的小提琴演示了这种方法。

https://jsfiddle.net/xovwfe8t/

Object3D.positionObject3D.rotationObject3D.scale代表3D对象的局部变换。如果要在3D空间中应用变换,这些属性应该是您的主要界面。

three.js R 104