引入
官网下载three.min.js库或使用CDN引入
<script src="three.min.js"></script>公共方法
// 交互:鼠标拖动旋转
function addMouseDragging(renderer, node_3d) {
let isDragging = false;
let previousMousePosition = {x: 0, y: 0};
renderer.domElement.addEventListener('mousedown', (e) => {
e.preventDefault();
e.stopPropagation();
isDragging = true;
});
renderer.domElement.addEventListener('mousemove', (e) => {
e.preventDefault();
e.stopPropagation();
if (isDragging) {
const deltaMove = {
x: e.offsetX - previousMousePosition.x,
y: e.offsetY - previousMousePosition.y
};
node_3d.rotation.y += deltaMove.x * 0.01;
node_3d.rotation.x += deltaMove.y * 0.01;
}
previousMousePosition = {x: e.offsetX, y: e.offsetY};
});
renderer.domElement.addEventListener('mouseup', () => {
isDragging = false;
});
}
// 交互:滚轮放大缩小
function addMouseWheel(renderer, camera) {
renderer.domElement.addEventListener('wheel', (e) => {
e.preventDefault();
e.stopPropagation();
const delta = e.deltaY || e.wheelDelta; // 获取滚轮方向
if (delta < 0) {
// camera.zoom *= 1.1; // 放大
camera.position.z -= 1;
} else {
// camera.zoom /= 1.1; // 缩小
camera.position.z += 1;
}
camera.updateProjectionMatrix();
});
}作者:yuanfun 创建时间:2024-12-30 09:17
最后编辑:yuanfun 更新时间:2025-01-14 17:00
最后编辑:yuanfun 更新时间:2025-01-14 17:00