【发布时间】:2017-05-01 09:39:07
【问题描述】:
我正在尝试使用滑块事件来缩放 THREE.PlaneGeometry。实际上,我正在尝试实施百叶窗。当我尝试更改几何图形相对于处理程序的比例时,百叶窗在两侧均匀缩放。它应该固定在顶部并在一个方向上缩放。我尝试更改网格原点的坐标并通过差异平移网格。但它不起作用。缩放始终从原点发生,平面几何在两侧增长。
知道如何让它只在一侧缩放吗?
【问题讨论】:
标签: three.js
我正在尝试使用滑块事件来缩放 THREE.PlaneGeometry。实际上,我正在尝试实施百叶窗。当我尝试更改几何图形相对于处理程序的比例时,百叶窗在两侧均匀缩放。它应该固定在顶部并在一个方向上缩放。我尝试更改网格原点的坐标并通过差异平移网格。但它不起作用。缩放始终从原点发生,平面几何在两侧增长。
知道如何让它只在一侧缩放吗?
【问题讨论】:
标签: three.js
您需要平移您的几何图形,以便顶部边缘通过原点。
var geometry = new THREE.PlaneGeometry( 10, 10 );
geometry.applyMatrix( new THREE.Matrix4().makeTranslation( 0, - 10 / 2, 0 ) );
现在,当您缩放网格时,顶部将保持固定。
编辑:现在有一个可以使用的内置方法:
geometry.translate( 0, - 10 / 2, 0 );
three.js r.85
【讨论】:
mesh.geometry.applyMatrix( new THREE.Matrix4().makeTranslation( 0, - mesh.geometry.parameters.height / 2, 0 ) ); mesh.translateY(mesh.geometry.parameters.height / 2)