d_z*_*z90 10 javascript three.js
我正在制作一个项目,three.js用户可以动态地更改模型的尺寸.问题与我发布的这个问题非常相似,但是我担心它不起作用,因为这次我正在使用平面形状的挤压.我遇到问题的代码片段如下:
cubeY.onChange(function(value){
cube.scale.y = value;
cube.position.y = (cubeHeight * value) / 2;
roof.position.y = (roofHeight * roof.scale.y) / 2 + cube.position.y * 2 - roofHeight;});;
roofY.onChange(function(value){
roof.scale.y = value;
roof.position.y = ((roofHeight * value) + cube.position.y * 2) - value * roofHeight;
});
Run Code Online (Sandbox Code Playgroud)
正如您所观察到的,当我改变时roof.scale.y,对象也在移动,但它应该固定在立方体的上部.你知道我做错了什么吗?这是一个完整代码的jsfiddle.
提前感谢您的回答!
缩放立方体的高度cubeHeight * cube.scale.y为 屋顶的高度为roofHeight * roof.scale.y。
立方体的顶部中心位置(立方体的高度)是cube.position.y + cubeHeight/2 * cube.scale.y或者只是cubeHeight * cube.scale.y
屋顶的几何中心不是坐标系中心,所以它的位置是立方体的高度减去屋顶高度的一半
cube.position.y + cubeHeight/2 * cube.scale.y - roofHeight/2 * roof.scale.y
Run Code Online (Sandbox Code Playgroud)