- 浏览: 60261 次
- 性别:
- 来自: 江西
文章分类
最新评论
注:来自http://daimaren.cn/blog/?p=195
(function(){//粒子喷泉
var sp = function(posx,posy){
var c1=Math.floor(Math.random()*256),c2=Math.floor(Math.random()*256),c3=Math.floor(Math.random()*256);
this.posX = posx;
this.posY = posy;
this.velX = 0;
this.velY = 0;
this.shrink = 1;
this.size = 1;
this.drag = 1;
this.gravity = 0;
this.alpha = 0.5;
this.fade = 0;
this.update = function()
{
this.velX *= this.drag;
this.velY *= this.drag;
this.velY += this.gravity;
this.posX += this.velX;
this.posY += this.velY;
this.size *= this.shrink;
this.alpha -= this.fade;
}
this.render = function(c)
{
c.fillStyle = "rgba("+c1+","+c2+","+c3+","+this.alpha+")";
c.beginPath();
c.arc(this.posX, this.posY, this.size, 0, Math.PI*2, true);
c.closePath();
c.fill();
}
}
var spring = window['spring'] = function(){
var W = window.innerWidth,H=window.innerHeight,springArr=[],MaxSpring=150,context,_self=this;
this.printScr = function(){
document.write('<canvas width='+W+' height='+H+' id="Myspring"></canvas>')
};
this.randomRange = function(min,max){//返回随机范围值
return ((Math.random()*(max-min)) + min);
};
this.isCanDraw = function(){
return !!document.createElement('canvas').getContext;
};
this.makeSpring = function(nub){
for(var i=0;i<nub;i++){
var sps = new sp(_self.randomRange(1,W),100);
sps.velX = (Math.random()*20)-10;
sps.velY = (Math.random()*20)-10;
sps.drag = 0.96;
sps.gravity = 0.5;
sps.size = _self.randomRange(1,20);
springArr.push(sps);
}
};
this.init=function(){
if(_self.isCanDraw()){
_self.printScr();
var canvas = document.getElementById("Myspring");
context = canvas.getContext('2d');
_self.loop();
}
}
this.loop = function(){
_self.makeSpring(4);
context.fillStyle="rgb(0,0,0)";
context.fillRect(0,0,W, H);
for (i=0; i<springArr.length; i++)
{
var sp =springArr[i];
sp.render(context);
sp.update();
}
while(springArr.length>MaxSpring){
springArr.shift();
}
setTimeout(_self.loop,1000/30)
}
}
})();
var po = new spring();
po.init();
(function(){//粒子喷泉
var sp = function(posx,posy){
var c1=Math.floor(Math.random()*256),c2=Math.floor(Math.random()*256),c3=Math.floor(Math.random()*256);
this.posX = posx;
this.posY = posy;
this.velX = 0;
this.velY = 0;
this.shrink = 1;
this.size = 1;
this.drag = 1;
this.gravity = 0;
this.alpha = 0.5;
this.fade = 0;
this.update = function()
{
this.velX *= this.drag;
this.velY *= this.drag;
this.velY += this.gravity;
this.posX += this.velX;
this.posY += this.velY;
this.size *= this.shrink;
this.alpha -= this.fade;
}
this.render = function(c)
{
c.fillStyle = "rgba("+c1+","+c2+","+c3+","+this.alpha+")";
c.beginPath();
c.arc(this.posX, this.posY, this.size, 0, Math.PI*2, true);
c.closePath();
c.fill();
}
}
var spring = window['spring'] = function(){
var W = window.innerWidth,H=window.innerHeight,springArr=[],MaxSpring=150,context,_self=this;
this.printScr = function(){
document.write('<canvas width='+W+' height='+H+' id="Myspring"></canvas>')
};
this.randomRange = function(min,max){//返回随机范围值
return ((Math.random()*(max-min)) + min);
};
this.isCanDraw = function(){
return !!document.createElement('canvas').getContext;
};
this.makeSpring = function(nub){
for(var i=0;i<nub;i++){
var sps = new sp(_self.randomRange(1,W),100);
sps.velX = (Math.random()*20)-10;
sps.velY = (Math.random()*20)-10;
sps.drag = 0.96;
sps.gravity = 0.5;
sps.size = _self.randomRange(1,20);
springArr.push(sps);
}
};
this.init=function(){
if(_self.isCanDraw()){
_self.printScr();
var canvas = document.getElementById("Myspring");
context = canvas.getContext('2d');
_self.loop();
}
}
this.loop = function(){
_self.makeSpring(4);
context.fillStyle="rgb(0,0,0)";
context.fillRect(0,0,W, H);
for (i=0; i<springArr.length; i++)
{
var sp =springArr[i];
sp.render(context);
sp.update();
}
while(springArr.length>MaxSpring){
springArr.shift();
}
setTimeout(_self.loop,1000/30)
}
}
})();
var po = new spring();
po.init();
发表评论
-
jquery validate addMethod
2011-06-20 15:18 1535只能输入m-n个字符且至少有一个字母和一个数字 jQuer ... -
4个跨浏览器必备的函数
2011-05-26 13:58 736http://www.cssbaby.com/archives ... -
用jquery实现的文本框只能输入数字
2011-05-25 10:14 2278用jquery实现的文本框只能输入数字简单插件 $.fn. ... -
闭包理解
2011-04-28 11:51 811直接看到代码 var list = document.ge ... -
JS/DOM/Ajax/Framework(Jquery/Yui/Mootools/EXT)
2011-03-28 10:09 1054gotop效果 <script> var B ... -
jQuery 封装function
2011-03-25 16:37 1919// JavaScript Document (func ... -
利用浏览器默认方法获取浏览器当前位置
2011-03-19 13:53 1028支持浏览器 IE FIREFOX SAFARI CHROME ... -
关于用jQuery实现效果
2011-03-19 09:37 7891、效果1:关于新闻信息文字上下切换 <div i ... -
jquery实现键盘上下键、return键选折li
2011-03-16 11:42 6590注释:code来源javaeye 使用前要引入jquery库 ... -
随滚动条移动的层
2011-02-15 09:51 804<!DOCTYPE html PUBLIC &quo ... -
yui的学习脚印
2011-01-30 22:37 958<!DOCTYPE html PUBLIC &quo ... -
vim 使用
2011-01-21 17:08 681vim命令 vi和vim是linux和u ... -
js左右滚动效果
2011-01-21 14:49 1830<!DOCTYPE html PUBLIC &quo ... -
javascript基础知识
2011-01-19 09:45 729注释:来自http://www.csssea.com/?p=7 ... -
Javascript浏览器兼容问题
2011-01-14 00:13 1019Javascript浏览器兼容 1.doc ... -
一个简单的javascript tab选项卡
2011-01-13 20:51 1088<!DOCTYPE html PUBLIC &quo ... -
常用的正则表达式
2011-01-10 13:47 652/** *postal codes regular ... -
一些比较实用的javascript方法
2011-01-10 13:25 906动态加载javascript文件 <script t ... -
javacript实现根据选择不同国家选择显示不同的省/州
2010-12-29 01:13 1450/** * @author wangxiang * ... -
javascript方法(Methods)
2010-12-28 23:49 9661、Array array.concat(item..) co ...
相关推荐
3. **动画原理**:粒子喷泉的动态效果是通过定时器(通常使用`requestAnimationFrame`)来实现的。每次更新时,粒子的位置、速度、旋转等属性会被改变,然后调用`clearRect`清除画布并重新绘制,形成连续的动画效果...
创建一个新的THREE.Scene实例,将为我们的粒子喷泉提供舞台。 2. **创建相机(Camera)**:相机决定了观众如何观察场景。在本例中,我们可以使用THREE.PerspectiveCamera,设定视场角、纵横比和近远裁剪面。 3. **...
在本文中,我们将深入探讨如何使用HTML5的Canvas API创建一个粒子喷泉动画特效,并结合JavaScript实现鼠标交互功能,使用户可以通过点击增加粒子喷泉的效果。Canvas是HTML5的一个核心特性,它允许开发者在网页上绘制...
在Canvas上实现粒子喷泉动画特效,主要涉及到以下几个核心知识点: 1. **Canvas基本操作**:首先,你需要理解如何在HTML文档中创建一个Canvas元素,并通过JavaScript获取到它的2D渲染上下文(`canvas.getContext('...
在粒子喷泉动画中,每个粒子可能代表一个小点或图形,它们按照预设的运动轨迹和速度移动,形成动态的视觉效果。这种特效通常通过以下步骤实现: 1. **创建Canvas元素**:首先,在HTML文档中添加一个`<canvas>`标签...
在这个粒子喷泉动画中,每个粒子都具有位置、速度、大小等属性,并受到重力的影响,使得粒子向下运动,形成类似喷泉的效果。开发者可能通过调整粒子的初始速度、重力系数以及生命周期等参数,来控制喷泉的形态和动态...
本项目“三维粒子模型喷泉”是利用Visual C++ 6.0这一经典编程环境实现的一个交互式三维动画。它展示了粒子系统如何被用来创建动态、引人入胜的视觉效果,特别是模拟水体流动的效果,如喷泉。 粒子模型是一种简化...
在IT行业中,"喷泉+粒子科技"是一个独特的概念,结合了动态图形设计与编程技术。这个主题主要涉及两个方面:喷泉效果的实现和粒子系统中的黑洞模拟。这两个概念通常用于增强用户界面的视觉吸引力,尤其是在游戏开发...
【描述】提到的"非常实用好看的特效代码",指的是这个压缩包中包含了一套完整的WebGL粒子喷泉动画的源代码。这套代码不仅设计精巧,能够流畅地运行,还提供了二次修改的可能性,意味着开发者可以根据自己的需求对...
在本文中,我们将深入探讨如何使用Cesium库创建粒子特效,特别是喷泉特效。Cesium是一个强大的开源JavaScript库,专为在Web上呈现3D地理空间数据而设计,它利用WebGL技术提供高性能的3D图形渲染。我们将讨论Cesium中...
在"canvas粒子喷泉动画特效"中,我们需要创建大量粒子,并控制它们的运动轨迹以模拟喷泉效果。每个粒子都有自己的属性,如位置、速度、颜色、大小等。在每一帧中,我们更新粒子的状态,然后在Canvas上绘制它们。这...
在计算机图形学领域,粒子系统是一种强大的工具,用于模拟复杂的视觉效果,如喷泉、雨、雪等自然现象。OpenSceneGraph(osg)是一个开源的3D图形库,提供了丰富的功能,其中包括粒子系统的实现。本篇文章将深入探讨...
在本案例中,"webgl喷泉粒子发射动画特效特效代码"是一个利用WebGL库来创建动态、视觉冲击力强的粒子喷泉效果的项目。这种特效通常用于网站背景或者互动元素,可以为用户带来生动的视觉体验。 WebGL允许开发者直接...
在这个特定的场景中,我们关注的是"unity 喷泉粒子特效",这是一个利用Unity引擎的粒子系统创建的视觉效果。 粒子系统是Unity中的一个重要工具,它允许开发者模拟各种自然现象,如火、烟、水、雾等,通过无数微小的...
flash 写的喷泉特效。 粒子效果,跟鼠标互动。 还是挺绚的。
在这个"OpenGl喷泉粒子效果"项目中,我们看到的是如何利用OpenGL的特性来模拟逼真的喷泉场景。以下是对这个主题的详细解释: 首先,我们要理解“粒子效果”在计算机图形学中的含义。粒子系统是一种模拟复杂视觉效果...
OPENGL 粒子系统 喷泉 OPENGL 粒子系统 喷泉 OPENGL 粒子系统 喷泉 OPENGL 粒子系统 喷泉 OPENGL 粒子系统 喷泉