html5的canvas实现3d雪花飘舞效果


Posted in HTML / CSS onDecember 27, 2013

复制代码
代码如下:

var SCREEN_WIDTH = window.innerWidth;
var SCREEN_HEIGHT = window.innerHeight;</p> <p> var container;</p> <p> var particle;</p> <p> var camera;
var scene;
var renderer;</p> <p> var mouseX = 0;
var mouseY = 0;</p> <p> var windowHalfX = window.innerWidth / 2;
var windowHalfY = window.innerHeight / 2;

var particles = [];
var particleImage = new Image();//THREE.ImageUtils.loadTexture( "img/ParticleSmoke.png" );
particleImage.src = 'images/ParticleSmoke.png'; </p> <p>

function init() {</p> <p> container = document.createElement('div');
document.body.appendChild(container);</p> <p> camera = new THREE.PerspectiveCamera( 75, SCREEN_WIDTH / SCREEN_HEIGHT, 1, 10000 );
camera.position.z = 1000;</p> <p> scene = new THREE.Scene();
scene.add(camera);

renderer = new THREE.CanvasRenderer();
renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);
var material = new THREE.ParticleBasicMaterial( { map: new THREE.Texture(particleImage) } );

for (var i = 0; i < 500; i++) {</p> <p> particle = new Particle3D( material);
particle.position.x = Math.random() * 2000 - 1000;
particle.position.y = Math.random() * 2000 - 1000;
particle.position.z = Math.random() * 2000 - 1000;
particle.scale.x = particle.scale.y = 1;
scene.add( particle );

particles.push(particle);
}</p> <p> container.appendChild( renderer.domElement );</p> <p>
document.addEventListener( 'mousemove', onDocumentMouseMove, false );
document.addEventListener( 'touchstart', onDocumentTouchStart, false );
document.addEventListener( 'touchmove', onDocumentTouchMove, false );

setInterval( loop, 1000 / 60 );

}

function onDocumentMouseMove( event ) {</p> <p> mouseX = event.clientX - windowHalfX;
mouseY = event.clientY - windowHalfY;
}</p> <p> function onDocumentTouchStart( event ) {</p> <p> if ( event.touches.length == 1 ) {</p> <p> event.preventDefault();</p> <p> mouseX = event.touches[ 0 ].pageX - windowHalfX;
mouseY = event.touches[ 0 ].pageY - windowHalfY;
}
}</p> <p> function onDocumentTouchMove( event ) {</p> <p> if ( event.touches.length == 1 ) {</p> <p> event.preventDefault();</p> <p> mouseX = event.touches[ 0 ].pageX - windowHalfX;
mouseY = event.touches[ 0 ].pageY - windowHalfY;
}
}</p> <p> //</p> <p> function loop() {</p> <p> for(var i = 0; i<particles.length; i++)
{</p> <p> var particle = particles[i];
particle.updatePhysics();

with(particle.position)
{
if(y<-1000) y+=2000;
if(x>1000) x-=2000;
else if(x<-1000) x+=2000;
if(z>1000) z-=2000;
else if(z<-1000) z+=2000;
}
}

camera.position.x += ( mouseX - camera.position.x ) * 0.05;
camera.position.y += ( - mouseY - camera.position.y ) * 0.05;
camera.lookAt(scene.position); </p> <p> renderer.render( scene, camera );</p> <p>
}

HTML / CSS 相关文章推荐
CSS3 translate导致字体模糊的实例代码
Aug 30 HTML / CSS
CSS3教程:background-clip和background-origin
Oct 17 HTML / CSS
HTML5 CSS3给网站设计带来出色效果
Jul 16 HTML / CSS
详解CSS3选择器的使用方法汇总
Nov 24 HTML / CSS
css3 边框、背景、文本效果的实现代码
Mar 21 HTML / CSS
html5/css3响应式页面开发总结
Oct 16 HTML / CSS
HTML5 本地存储之如果没有数据库究竟会怎样
Apr 25 HTML / CSS
实例讲解利用HTML5 Canvas API操作图形旋转的方法
Mar 22 HTML / CSS
HTML5 文件域+FileReader 分段读取文件并上传到服务器
Oct 23 HTML / CSS
CSS控制继承中的height能变为可继承吗
Jun 10 HTML / CSS
HTML静态页面获取url参数和UserAgent的实现
Aug 05 HTML / CSS
css之clearfix的用法深入理解(必看篇)
May 21 HTML / CSS
html5 canvas实现圆形时钟代码分享
Dec 25 #HTML / CSS
html5 css3网站菜单实现代码
Dec 23 #HTML / CSS
html5 自定义播放器核心代码
Dec 20 #HTML / CSS
谷歌浏览器小字体处理方案即12px以下字体
Dec 17 #HTML / CSS
利用html5的websocket实现websocket聊天室
Dec 12 #HTML / CSS
html5拍照功能实现代码(htm5上传文件)
Dec 11 #HTML / CSS
html5教程实现Photoshop渐变色效果
Dec 04 #HTML / CSS
You might like
php流量统计功能的实现代码
2012/09/29 PHP
php获取目标函数执行时间示例
2014/03/04 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
Python中装饰器学习总结
2018/02/10 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
CSS3实现曲线阴影和翘边阴影
2016/05/03 HTML / CSS
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
美国主要的特色咖啡和茶公司:Peet’s Coffee
2020/02/14 全球购物
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
学生保证书范文
2014/04/28 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
工作经验交流材料
2014/12/30 职场文书
焦裕禄观后感
2015/06/03 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python
详解Python中的for循环
2022/04/30 Python