如何在三个js中改变一个尺度(通过分配)

How to change a scale in three js (through assignment)

本文关键字:一个 分配 js 三个 改变      更新时间:2023-09-26

我有三个对象。我想让它们共享scale向量

的值
  mesh1 = new THREE.Mesh(geometry, material); 
  mesh1.scale.x = 0.47;
  mesh2 = new THREE.Mesh(geometry, material); 
  mesh2.scale=mesh1.scale;  // This does not work

最后一行无效。文档没有说明scale属性是只读的。我看了一下源代码,发现该属性没有定义为可写的。是文档中有bug,还是这就是threejs的工作方式,没有必要写文档:-)?

是否有可能在不同的网格之间共享比例(和其他向量)?是复制

值的唯一方法吗?
  mesh2.scale.copy(mesh1.scale);  // Copy the vector over

UPDATE:这似乎可以在旧版本的ejs中工作-例如下面示例中使用的ejs。这个功能是故意禁用的吗?

Object3Dposition, rotation, quaternionscale属性是不可变的。

参见源代码文件Object3D.js

例如,您不能再使用以下模式:

object.scale = vector;
相反,您必须使用
object.scale.set( x, y, z );

object.scale.copy( vector );

同样适用于其他提到的属性。

three.js r.72