【发布时间】:2017-01-06 07:30:31
【问题描述】:
目前我正在处理一个 THREE.js 项目,在缩放对象时遇到问题。它在使用轨迹球控件时根据渲染的中心位置进行缩放,但我想根据光标位置进行缩放。我有尝试使用controls.noZoom=true 禁用轨迹球控件下的缩放,并在鼠标滚轮下编写了一个代码。正如我预期的那样非常好,但它只是放大而不是缩小。
mousewheel = function (event) {
event.preventDefault();
event.stopPropagation();
var factor = 15;
var mX = (event.clientX / jQuery(container).width()) * 2 - 1;
var mY = -(event.clientY / jQuery(container).height()) * 2 + 1;
var vector = new THREE.Vector3(mX, mY, 0.5);
zoomstart = vector.unproject(camera);
vector.sub(camera.position);
camera.position.addVectors(camera.position, vector.setLength(factor));
trackBallControls.target.addVectors(trackBallControls.target, vector.setLength(factor));
};
使用此代码帮助我根据鼠标位置进行缩放。
【问题讨论】:
-
我找到了解决办法
标签: javascript jquery three.js