首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缩放mesh1,mesh2自动改变它的位置?

缩放mesh1,mesh2自动改变它的位置?
EN

Stack Overflow用户
提问于 2015-11-04 21:51:47
回答 1查看 136关注 0票数 1

基本上,我喜欢将网格1的右侧连接到网格2的左侧。

目前,如果我缩放mesh1,我必须重新定位mesh2以保持与以前相同的距离。

让我们把mesh 1缩放到z: 2

代码语言:javascript
复制
var tween = new TWEEN.Tween(mesh1.scale).to({ z: 2 }, 1000).start();
tween.easing(TWEEN.Easing.Elastic.InOut);

为了与网格1有相同的距离,我必须将网格2重新定位为z:1.5

代码语言:javascript
复制
var tween = new TWEEN.Tween(mesh2.position).to({ z: 1.5 }, 1000).start();
tween.easing(TWEEN.Easing.Elastic.InOut);

在连接有色网格面时是否有任何选项。所以,如果我缩放网格1,网格2自动改变它的位置?

..。

代码语言:javascript
复制
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 );
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-12 06:59:17

这是一个几何问题.

我以前没有和three.js合作过,但我相信我有一个几何解。

考虑第三个虚拟网格,mesh3,它是mesh1mesh2的组合。

这就是:

代码语言:javascript
复制
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:

  1. mesh1mesh3分别用k进行标度。
  2. 计算mesh3mesh1meshDiff之间的差异。
  3. 设置mesh2 = meshDiff

方法2:

  1. mesh3k进行刻度。
  2. 计算mesh3mesh31mesh32的两部分,使它们分别沿mesh1mesh2定向。
  3. 设置mesh1 = mesh31mesh2 = mesh32

这些方法是非常相似的。记住Three.js的API以选择最佳的方法。

注:,您不需要渲染mesh3。它只作为一种计算工具存在。

的一般性:

上面提到的想法也可以在其他情况下使用,在这些情况下,共享共同特性的几何图形需要进行缩放。

希望这能有所帮助。

PS:我意识到这个答案有点抽象。尽管如此,我还是希望它能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33532746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档