Three.js悬臂梁变形动画演示:交互式三维场景
以下是一个使用Three.js编写的悬臂梁变形动画的示例代码。该代码可以在网页中显示一个三维场景,并且可以通过鼠标旋转来观察悬臂梁的变形动画。
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>悬臂梁变形动画</title>
<style>
body { margin: 0; overflow: hidden; }
</style>
</head>
<body>
<script src='https://cdnjs.cloudflare.com/ajax/libs/three.js/110/three.min.js'></script>
<script>
// 创建场景
var scene = new THREE.Scene();
// 创建相机
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 5;
// 创建渲染器
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// 创建悬臂梁模型
var geometry = new THREE.BoxGeometry(1, 0.1, 0.1);
var material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
var beam = new THREE.Mesh(geometry, material);
scene.add(beam);
// 动画循环
function animate() {
requestAnimationFrame(animate);
// 每帧更新悬臂梁的变形
beam.rotation.x += 0.01;
beam.rotation.y += 0.01;
renderer.render(scene, camera);
}
animate();
// 鼠标控制旋转
function onDocumentMouseMove(event) {
var windowHalfX = window.innerWidth / 2;
var windowHalfY = window.innerHeight / 2;
var mouseX = event.clientX - windowHalfX;
var mouseY = event.clientY - windowHalfY;
beam.rotation.y = mouseX * 0.002;
beam.rotation.x = mouseY * 0.002;
}
document.addEventListener('mousemove', onDocumentMouseMove, false);
</script>
</body>
</html>
将上述代码保存为一个HTML文件,并在浏览器中打开该文件,即可看到一个显示悬臂梁变形动画的三维场景。通过鼠标移动可以旋转悬臂梁。
原文地址: https://www.cveoy.top/t/topic/p7KE 著作权归作者所有。请勿转载和采集!