В настоящее время я работаю над проектом THREE.js. Если вы используете масштабирование управления трекболом, оно масштабируется относительно центра модели. Но я хочу увеличить масштаб в соответствии с положением курсора с колесом мыши. Любой, кто знаком, пожалуйста, помогите мне в этом. Спасибо заранее.масштабирование в зависимости от положения курсора в колесико мыши
4
A
ответ
1
В mousewheel добавьте этот код, который поможет вам в масштабировании в зависимости от положения курсора, а не относительно модели.
Если вы используете элементы управления трекболом, вы можете использовать его для панорамирования и поворота. Таким образом, элементы управления трекболом включены в ложное в колесико мыши.
renderer.domElement.addEventListener('mousewheel',
function (e) {
mousewheel(e);
},
false);
function mousewheel(event) {
trackBallControls.noZoom = true;
event.preventDefault();
var factor = 50;
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);
//console.log(vector);
vector.unproject(camera);
vector.sub(camera.position);
if (event.deltaY < 0) {
camera.position.addVectors(camera.position,
vector.setLength(factor));
trackBallControls.target.addVectors(trackBallControls.target,
vector.setLength(factor));
camera.updateProjectionMatrix();
} else {
camera.position.subVectors(camera.position,
vector.setLength(factor));
trackBallControls.target.subVectors(trackBallControls.target,
vector.setLength(factor));
camera.updateProjectionMatrix();
}
}
http://stackoverflow.com/questions/5613718/click-to-zoom-in-webgl – gaitat
Спасибо @gaitat для справки, но вы можете вести меня с three.js кодом. –
Этого я не искал. –