Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
html { scroll-behavior: smooth; font-family: Georgia; } body { background: black; margin: 0; padding: 0; } canvas { position: fixed; top: 0; left: 0; width: 100%; height: 100%; display: block; }
JavaScript
let mouseX = window.innerWidth / 2; let mouseY = window.innerHeight / 2; var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 100); camera.position.set(0, 0, 25); var renderer = new THREE.WebGLRenderer({ antialias: true, }); renderer.shadowMap.enabled = true; renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); window.addEventListener('mousemove',(e) => { mouseX = e.pageX - window.innerWidth / 2; mouseY = e.pageY - window.innerHeight / 2; tissue.rotation.y = mouseX * 0.0008; tissue.rotation.x = mouseY * 0.001; }) const ambientLight = new THREE.AmbientLight('#ffffff', .5); const spotLight = new THREE.SpotLight('#ffffff', .9); const spotLight2 = new THREE.SpotLight('#ffffff', .7); scene.add(ambientLight); scene.add(spotLight); scene.add(spotLight2); spotLight.position.set(10,-8,16); spotLight.castShadow = true; spotLight.shadow.mapSize.height = 1800; spotLight.shadow.mapSize.width = 1800; spotLight.target.position.set(0, 0, 0); spotLight2.position.set(-5,15,18); spotLight2.castShadow = true; spotLight2.shadow.mapSize.height = 1800; spotLight2.shadow.mapSize.width = 1800; spotLight2.target.position.set(0, 0, 0); // const cameraHelper = new THREE.CameraHelper(spotLight2.shadow.camera); // scene.add(cameraHelper); // const cameraHelper2 = new THREE.CameraHelper(spotLight.shadow.camera); // scene.add(cameraHelper2); const tissue = new THREE.Group(); scene.add(tissue); // const groundGeometry = new THREE.PlaneGeometry(115, 115, 12); // const groundMaterial = new THREE.MeshPhongMaterial({ // color: '#221122' // }); // const ground = new THREE.Mesh(groundGeometry,groundMaterial); // scene.add(ground); // ground.position.z = -8; // ground.receiveShadow = true; for (let i = 0; i < 140; i++) { const arcShape = new THREE.Shape(); const r = 0.2 + i * 0.2; const thickness = 0.2; arcShape.absarc( 0, 0, r, 0, Math.PI * 2, false ); const holePath = new THREE.Path(); holePath.absarc( 0, 0, r - thickness, 0, Math.PI * 2, true ); arcShape.holes.push( holePath ); const extrudeGeom = new THREE.ExtrudeBufferGeometry(arcShape, {depth: 2, curveSegments: 128, bevelEnabled: false}); const skin = new THREE.Mesh(extrudeGeom, new THREE.MeshPhongMaterial({color: `rgb(${i % 2 * Math.floor(255 - Math.random() * 80) + Math.floor(Math.random() * 15)},${i % 2 * Math.floor(55 - Math.random() * 20) + Math.floor(Math.random() * 15)},${i % 2 * Math.floor(255 - Math.random() * 180)})`})); skin.receiveShadow = true; skin.castShadow = true; tissue.add(skin); } tissue.rotation.y = -.35; tissue.rotation.x = 0.1; renderer.setAnimationLoop(() => { renderer.render(scene, camera); }); requestAnimationFrame(render); function render(now) { tissue.children.forEach((skin, i) => { skin.scale.set(1, 1, Math.sin((now + i * 60) * 0.002) * (1.5 + i * 0.04)); skin.position.set(0, 0, Math.abs(Math.sin((now + i * 60) * 0.002)) * (2 + i * 0.04)); }) requestAnimationFrame(render); }
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>three.js 3d视差彩色圈-jq22.com</title> <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <style>
</style> </head> <body>
<script>
</script>
</body> </html>
2012-2021 jQuery插件库版权所有
jquery插件
|
jq22工具库
|
网页技术
|
广告合作
|
在线反馈
|
版权声明
沪ICP备13043785号-1
浙公网安备 33041102000314号