基本上,我喜欢将网格1的右侧连接到网格2的左侧。
目前,如果我缩放mesh1,我必须重新定位mesh2以保持与以前相同的距离。
让我们把mesh 1缩放到z: 2
var tween = new TWEEN.Tween(mesh1.scale).to({ z: 2 }, 1000).start();
tween.easing(TWEEN.Easing.Elastic.InOut);为了与网格1有相同的距离,我必须将网格2重新定位为z:1.5
var tween = new TWEEN.Tween(mesh2.position).to({ z: 1.5 }, 1000).start();
tween.easing(TWEEN.Easing.Elastic.InOut);在连接有色网格面时是否有任何选项。所以,如果我缩放网格1,网格2自动改变它的位置?

..。
var geometry = new THREE.BoxGeometry( 1, 1, 1 );
var mesh1 = new THREE.Mesh( geometry,
new THREE.MeshPhongMaterial({color: 0x222222}));
mesh1 .position.set( 0, 0, 0 );
mesh1 .scale.set( 1, 1, 1 );
scene.add( mesh1 );
var mesh2 = new THREE.Mesh( geometry,
new THREE.MeshPhongMaterial({color: 0x222222}));
mesh2 .position.set( 0, 0, 1 );
mesh2 .scale.set( 1, 1, 1 );
scene.add( mesh2 );发布于 2015-11-12 06:59:17
这是一个几何问题.
我以前没有和three.js合作过,但我相信我有一个几何解。
考虑第三个虚拟网格,mesh3,它是mesh1和mesh2的组合。
这就是:
mesh1: position(0, 0, 0), scale(1, 1, 1);
mesh2: position(0, 0, 1), scale(1, 1, 1);
mesh3: position(0, 0, 0), scale(1, 1, 2); // Loosely, mesh3 = mesh1 + mesh2现在,为了通过标量k扩展结构,我提出了两种方法:
方法1:
mesh1和mesh3分别用k进行标度。mesh3与mesh1、meshDiff之间的差异。mesh2 = meshDiff。方法2:
mesh3用k进行刻度。mesh3、mesh31和mesh32的两部分,使它们分别沿mesh1和mesh2定向。mesh1 = mesh31和mesh2 = mesh32。这些方法是非常相似的。记住Three.js的API以选择最佳的方法。
注:,您不需要渲染mesh3。它只作为一种计算工具存在。
的一般性:
上面提到的想法也可以在其他情况下使用,在这些情况下,共享共同特性的几何图形需要进行缩放。
希望这能有所帮助。
PS:我意识到这个答案有点抽象。尽管如此,我还是希望它能有所帮助。
https://stackoverflow.com/questions/33532746
复制相似问题