<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Three.js Perlin热图</title>
<style>
body {
margin: 0;
overflow: hidden;
}
</style>
</head>
<body>
<script src="js/jquery-1.11.1.min.js"></script>
<canvas></canvas>
<script src="js/three.min.js"></script>
<script src="js/perlin.js"></script>
<script src="js/OrbitControls.js"></script>
<script>
var renderer, scene, camera, spheres;
var ww = window.innerWidth,
wh = window.innerHeight;
function init() {
renderer = new THREE.WebGLRenderer({
canvas: document.querySelector('canvas'),
antialias: true
});
renderer.setSize(ww, wh);
renderer.setClearColor(0x000000);
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(50, ww / wh, 0.1, 10000);
camera.position.set(180, 100, 180);
camera.lookAt(new THREE.Vector3(0, 0, 0));
scene.add(camera);
controls = new THREE.OrbitControls(camera);
createField();
}
var size = 60;
function createField() {
spheres = new THREE.Object3D();
var geometry = new THREE.SphereGeometry(4, 10, 10);
for (var y = -size / 2; y < size / 2; y++) {
for (var x = -size / 2; x < size / 2; x++) {
var material = new THREE.MeshBasicMaterial({
color: 0x000000
});
var sphere = new THREE.Mesh(geometry, material);
sphere.position.set(x * 4, 0, y * 4);
sphere.org = {
x: x * 4,
z: y * 4
};
spheres.add(sphere);
}
}
scene.add(spheres);
requestAnimationFrame(render);
}
noise.seed(Math.random());
function render(a) {
requestAnimationFrame(render);
for (var i = spheres.children.length - 1; i >= 0; i--) {
var sphere = spheres.children[i];
var value = Math.round(Math.abs(noise.simplex3(sphere.org.x / 100, sphere.org.z / 100, a * 0.0001)) * 10) / 10;
sphere.material.color = new THREE.Color("hsl(" + (180 - value * 180) + ",50%,50%)");
sphere.position.y = value * 18;
}
renderer.render(scene, camera);
}
init();
</script>
</body>
</html>
Three.js+Perlin实现的热图动画效果源码.zip
版权申诉
134 浏览量
2022-11-01
00:08:36
上传
评论
收藏 161KB ZIP 举报
易小侠
- 粉丝: 6506
- 资源: 9万+
最新资源
- 【React框架】教程&案例&相关项目资源.docx
- cisco packet 笔记(待整理)
- redis-5.0.13-1.el7.remi.x86-64
- QML构件-数字键盘 代码工程
- 海光平台大数据软件部署、优化指南-海光平台技术培训系列
- 山东大学软件学院算法设计与分析2024年以前的部分往年题总结附答案
- 2023-04-06-项目笔记 - 第一百六十四阶段 - 4.4.2.162全局变量的作用域-162 -2024.06.14
- idea连接mysql数据库.docx
- 基于多线程的非阻塞 socket 编程
- Linux、Mac、Windows、Android、IOS等操作系统开发/调试的案例
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈