threejs球体旋转与场景旋转_Three.js+OrbitControls可交互操作的3D球体旋转

本文展示了如何使用Three.js创建一个3D球体,并结合OrbitControls实现球体和场景的可交互旋转。通过JavaScript编写,设置了点光源并应用了MeshPhongMaterial材质,提供平滑的视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript

语言:

JaveScriptBabelCoffeeScript

确定

var renderer, scene, camera, orbit, lights, mesh;

init();

animate();

function init() {

lights = new Array();

renderer = new THREE.WebGLRenderer({

alpha: true,

antialias: true

});

renderer.setSize(window.innerWidth, window.innerHeight);

document.body.appendChild(renderer.domElement);

scene = new THREE.Scene();

camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 100);

camera.position.set(0, 0, 10);

scene.add(camera);

orbit = new THREE.OrbitControls(camera, renderer.domElement);

orbit.enableZoom = false;

lights[0] = new THREE.PointLight(0xffffff, 1, 0);

lights[1] = new THREE.PointLight(0xffffff, 1, 0);

lights[2] = new THREE.PointLight(0xffffff, 1, 0);

lights[0].position.set(0, 200, 0);

lights[1].position.set(100, 200, 100);

lights[2].position.set(-100, -200, -100);

scene.add(lights[0]);

scene.add(lights[1]);

scene.add(lights[2]);

mesh = new THREE.Object3D();

mesh.add(new THREE.LineSegments(

new THREE.Geometry(),

new THREE.LineBasicMaterial({

color: 0xffffff,

transparent: true,

opacity: 1

})

));

mesh.add(new THREE.Mesh(

new THREE.SphereGeometry(3, 24, 24),

new THREE.MeshPhongMaterial({

color: 0x156289,

emissive: 0x072534,

side: THREE.DoubleSide,

shading: THREE.FlatShading

})

));

scene.add(mesh);

renderer.render(scene, camera);

}

function animate() {

requestAnimationFrame(animate);

mesh.rotation.x += 0.003;

mesh.rotation.y += 0.007;

renderer.render(scene, camera);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值