【发布时间】:2017-02-20 07:35:27
【问题描述】:
我想在单击按钮时更改/启动对象的动画旋转。我知道渲染功能是一个无限循环,而 cylinder.rotation.x += 0.1 将角度相加并使事情变得圆润。我想使用按钮更改启动此参数。到目前为止,我只设法在单击按钮时添加到旋转一次。也许工作示例会更好地解释:
<html>
<head>
<title>3D Cube</title>
<style>
canvas { width: 100%;
height: 100% }
</style>
</head>
<body>
<script src="three.js"></script>
<script>
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
var cylindergeometry = new THREE.CylinderGeometry(0.1, 0.1, 2, 50, false);
var cylindermaterial = new THREE.MeshLambertMaterial({wireframe: true, color: 0x000000});
var cylinder = new THREE.Mesh(cylindergeometry, cylindermaterial);
cylinder.position.set(0,0,0);
scene.add(cylinder);
camera.position.z = 5;
var render = function () {
requestAnimationFrame(render);
cylinder.rotation.x = 0.1;
renderer.render(scene, camera);
};
render();
var btn = document.createElement("BUTTON");
var t = document.createTextNode("CLICK ME");
btn.appendChild(t);
document.body.appendChild(btn);
btn.onclick=function(){
// start animation
// change cylinder.rotation.x = 0.1; to cylinder.rotation.x += 0.1;
};
</script>
</body>
</html>
【问题讨论】:
标签: javascript three.js rotation