调整立方体大小时,一个面不动,其他面改变位置或大小。高度/深度/宽度需要根据键盘进行拉伸(stretch)或压缩。
我建了一个立方体,但是我只能修改立方体的位置
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
最佳答案
修改 parameters
属性在创建几何后没有效果。如果你想改变立方体的宽度、高度或深度,请使用 Object3D.scale反而。下面的 fiddle 演示了这种方法。
https://jsfiddle.net/xovwfe8t/
Object3D.position
、Object3D.rotation
和 Object3D.scale
表示 3D 对象的局部变换。如果您想在 3D 空间中应用转换,这些属性应该是您的主要界面。
three.js R 104
关于javascript - 如何使用键盘拉伸(stretch)和压缩立方体的长宽高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56181462/