Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Three.js中动态更改对象维度_Javascript_Three.js - Fatal编程技术网

Javascript 在Three.js中动态更改对象维度

Javascript 在Three.js中动态更改对象维度,javascript,three.js,Javascript,Three.js,我正在使用three.js中的库dat.gui让用户与对象交互并修改其网格的尺寸。大多数在线示例在想要更改网格尺寸时都使用了scale: mesh.onChange(function(value){mesh.scale.x = value;}); 此解决方案的问题在于,用户不太友好,并且在更改值时还需要调整对象的位置。 除了这个,还有其他的可能性吗?在这种情况下,你可以张贴一个可行的替代工作的例子?提前感谢您的回答。解决问题的一个线索是了解对象的原点:在对象的几何中心或某个角。这还取决于规模经

我正在使用
three.js
中的库
dat.gui
让用户与对象交互并修改其网格的尺寸。大多数在线示例在想要更改网格尺寸时都使用了
scale

mesh.onChange(function(value){mesh.scale.x = value;});
此解决方案的问题在于,用户不太友好,并且在更改值时还需要调整
对象的位置。

除了这个,还有其他的可能性吗?在这种情况下,你可以张贴一个可行的替代工作的例子?提前感谢您的回答。

解决问题的一个线索是了解对象的原点:在对象的几何中心或某个角。这还取决于规模经营的实施情况

忽略three.js一分钟,如果手动完成缩放操作,可以将其视为三种不同的操作:

1 - translate the object center to the origin of your world coordinates
2 - multiply its vertex position matrix by your scale factor
3 - translate object back to original world location
因此,需要解决两个假设:

- is the ~center~ of your object at its geographic center or 
  at one of its corners

- do you want to scale (stretch) your object by expanding outwards from 
  its origin in all dimensions or simply extend outwards by retaining
  its current origin and ballooning its shape outwards
你需要表达什么样的行为


。。。。object.position将根据您的答案而定

您的答案是有道理的,我不得不说您的提示非常有用。非常感谢。我仍然想知道是否有一种方法可以替代
mesh.scale
来动态更改对象维度。。。