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
来动态更改对象维度。。。