久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

運用H5中的Canvas結合公式繪制粒子運動的教程

2024-04-29    分類: 網站建設

最近想把自己學HTML5過程中做的部分DEMO放上去做集合,但是僅僅做個網頁把所有DEMO一個一個排列又覺得太難看了。就想,既然學了canvas,那就來折騰下瀏覽器,做個小小的開場動畫吧。

開場動畫的效果,想了一會,決定用粒子,因為覺得粒子比較好玩。還記得以前我寫的第一篇技術博文,就是講文字圖片粒子化的:文字圖片粒子化 , 那時就僅僅做的是直線運動,順便加了一點3D效果。運動公式很簡單。所以就想這個開場動畫就做的更動感一些吧。

先上DEMO:http://2.axescanvas.sinaapp.com/demoHome/index.html

效果是不是比直線的運動更加動感呢?而且也確實很簡單,別忘了這篇博文的題目,小小滴公式,大大滴樂趣。要做出這樣的效果,用的就僅僅是我們初中。。或者高中時候的物理知識,加速運動,減速運動的公式啦。所以確實是小小滴公式。樓主很喜歡折騰一些酷炫的東西,雖然可能平時工作上用不上,但是,這樂趣確實很讓人著迷啊。而且,做下這些也可以加強一下編程的思維能力哈。

廢話不多說,進入主題啦。就簡單的解釋一下原理吧~~~

粒子運動的核心代碼就這么一點: XML/HTML Code復制內容到剪貼板 update:function(time){ this.x += this.vx*time; this.y += this.vy*time; if(!this.globleDown&&this.y>0){ var yc = this.toy - this.y; var xc = this.tox - this.x; this.jl = Math.sqrt(xc*xc+yc*yc); var za = 20; var ax = za*(xc/this.jl), ay = za*(yc/this.jl), vx = (this.vx+ax*time)*0.97, vy = (this.vy+ay*time)*0.97; this.vx = vx; this.vy = vy; }else { var gravity = 9.8; var vy = this.vy+gravity*time; if(this.y>canvas.height){ vy = -vy*0.7; } this.vy = vy; } }, 粒子總共有兩種狀態,一種是自由落體,一種就是受到吸力。自由落體就不說了。說吸力之前先貼出粒子的屬性: JavaScript Code復制內容到剪貼板 var Dot = function(x,y,vx,vy,tox,toy,color){ this.x=x; this.y=y; this.vx=vx; this.vy=vy; this.nextox = tox; this.nextoy = toy; this.color = color; this.visible = true; this.globleDown = false; this.setEnd(tox , toy); } setEnd:function(tox , toy){     this.tox = tox;     this.toy = toy;     var yc = this.toy - this.y;     var xc = this.tox - this.x; }, x,y就是粒子的位置,vx是粒子水平速度,vy是粒子的垂直速度,nexttox之類知不知道都無所謂,只是暫時保存變量的。tox,和toy就是粒子的目的地位置。

首先,先給予所有粒子一個目的地,這個目的地下面再會說。也就是要粒子到達的地方,然后再定義一個變量za作為加速度,具體數值的話,就自己多測試下就會有大概參數的了,我設成20,感覺就差不多了。za是粒子和目的地之間連線的加速度,所以,我們通過粒子的位置和目的地的位置,通過簡單的三角函數,就可以把粒子的水平加速度和垂直加速度求出來了,就這段 JavaScript Code復制內容到剪貼板 var ax = za*(xc/this.jl), ay = za*(yc/this.jl), 有了水平加速度和垂直加速度后,接下來就更簡單了,直接計算水平速度和垂直速度的增量,從而改變水平速度和垂直速度的值 XML/HTML Code復制內容到剪貼板 vx = (this.vx+ax*time)*0.97, vy = (this.vy+ay*time)*0.97; 之所以要乘于0.97是為了模擬能量損耗,粒子才會減速。time是每一幀的時間差

計算出速度后就更新粒子位置就行了。 XML/HTML Code復制內容到剪貼板 this.x += this.vx*time; this.y += this.vy*time; 因為粒子在飛行過程中,與目的地之間的連線方向是不停改變的,所以每一幀都要重新計算粒子的水平加速度和垂直加速度。

運動原理就是如此,是否很簡單呢。

運動原理說完了,再扯一下上面那個動畫的具體實現吧:動畫初始化,在一個離屏canvas上把想要的字或者圖片畫出來,然后再通過getImageData這個方法獲取離屏canvas的像素。然后用一個循環,把離屏canvas中有繪制的區域找出來,因為imageData里的data值就是一個rgba數組,所以我們判斷最后一個的值也就是透明度大于128就是有繪制過的區域。然后獲取該區域的xy值,為了防止粒子對象過多導致頁面卡頓,所以我們就限制一下粒子的數量,取像素的時候x值和y值每次遞增2,從而減少粒子數量。 XML/HTML Code復制內容到剪貼板 this.osCanvas = document.createElement("canvas"); var osCtx = this.osCanvas.getContext("2d"); this.osCanvas.width = 1000; this.osCanvas.height = 150; osCtx.textAlign = "center"; osCtx.textBaseline = "middle"; osCtx.font="70px 微軟雅黑,黑體 bold"; osCtx.fillStyle = "#1D181F" osCtx.fillText("WelCome" , this.osCanvas.width/2 , this.osCanvas.height/2-40); osCtx.fillText("To wAxes' HOME" , this.osCanvas.width/2 , this.osCanvas.height/2+40); var bigImageData = osCtx.getImageData(0,0,this.osCanvas.width,this.osCanvas.height); dots = []; for(var x=0;x128){ var dot = new Dot( Math.random()>0.5?Math.random()*20+10:Math.random()*20+canvas.width-40, -Math.random()*canvas.height*2, 0, 0, x+(canvas.width/2-this.osCanvas.width/2), y+(canvas.height/2-this.osCanvas.height/2), "rgba("+bigImageData.data[i]+","+bigImageData.data[i+1]+","+bigImageData.data[i+2]+",1)" ); dot.setEnd(canvas.width/2,canvas.height/2) dots.push(dot); } } } 通過循環獲取到粒子的位置xy值后,把位置賦給粒子,成為粒子的目的地。然后動畫開始,就可以做出文字圖片粒子化的效果了。 本文來源于成都網站建設公司與成都網站設計制作公司-創新互聯成都公司!

本文標題:運用H5中的Canvas結合公式繪制粒子運動的教程
轉載來源:http://www.js-pz168.com/news0/326350.html

成都網站建設公司_創新互聯,為您提供企業網站制作云服務器網站設計公司移動網站建設微信小程序小程序開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都seo排名網站優化
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
91视频国产资源| 中文字幕在线亚洲三区| 色域天天综合网| 欧美一级生活片| 国产精品毛片高清在线完整版| 亚洲一区二区在线视频| 国产一区高清在线| 国产综合精品一区二区三区| 91成人在线精品| 国产亚洲欧美中文| 日韩中文字幕麻豆| 91网页版在线| 中文字幕久精品免| 久久久99精品久久| 免费亚洲电影在线| www.成人av.com| 色成人在线视频| 日本一区二区电影| 老司机一区二区| 国产精品视频一区二区三区经| 日本国产一区二区| 亚洲国产电影在线观看| 麻豆精品国产传媒mv男同| 国产精品成人观看视频免费| 欧美视频在线观看一区| 国产精品九色蝌蚪自拍| 韩国一区二区在线观看| 久久伦理网站| 日韩视频中午一区| 亚洲高清不卡在线| 91麻豆蜜桃一区二区三区| 影音先锋欧美在线| 国产精品系列在线| 久久国产精品露脸对白| 国语精品免费视频| 日韩欧美国产午夜精品| 午夜精品久久久久久久久| 99久久综合99久久综合网站| 色综合欧美在线视频区| 国产精品麻豆欧美日韩ww| 国产一区二区久久| 亚洲成色最大综合在线| 国产无一区二区| 国产自产v一区二区三区c| 欧美婷婷久久| 国产日韩精品一区二区浪潮av| 久久成人羞羞网站| 日韩精品大片| 国产日韩欧美亚洲| 国产a久久麻豆| 色天使久久综合网天天| 亚洲男人都懂的| 91亚洲精品乱码久久久久久蜜桃| 欧美午夜精品一区| 亚洲在线视频免费观看| 成人欧美一区二区| 日韩女优视频免费观看| 免费av成人在线| 日日噜噜噜噜夜夜爽亚洲精品| 国产亚洲精品免费| 国产成人精品免费网站| 色综合天天综合在线视频| 亚洲丝袜制服诱惑| 99在线看视频| 欧美变态tickling挠脚心| 久久精品国产网站| 伊人色综合久久天天五月婷| 亚洲六月丁香色婷婷综合久久| 91视频一区二区三区| 7777精品久久久大香线蕉| 日本亚洲三级在线| 午夜精品一区二区三区在线观看| 国产精品视频九色porn| zzijzzij亚洲日本少妇熟睡| 欧美日韩国产一区| 免费在线观看一区二区三区| 日韩啊v在线| 国产精品理伦片| 91嫩草在线| 日韩美女视频一区二区在线观看| 精品在线免费观看| 91豆麻精品91久久久久久| 亚洲高清久久久| 日韩精品无码一区二区三区| 中文字幕五月欧美| 国产精品免费一区二区三区四区| 久久人人97超碰com| 粉嫩久久99精品久久久久久夜| 欧美日韩国产综合一区二区| 青青国产91久久久久久| 综合网五月天| 亚洲成人免费视| 日本午夜精品一区二区三区| 自拍偷拍亚洲综合| 精品国产乱码久久久久久蜜柚 | 精品久久久久久一区二区里番| 久久久午夜精品理论片中文字幕| 成人白浆超碰人人人人| 欧美一区二区三区四区高清 | 欧美性三三影院| 免费观看日韩电影| 91福利精品视频| 美腿丝袜亚洲一区| 欧美四级电影网| 捆绑变态av一区二区三区| 91黄色免费观看| 麻豆91精品91久久久的内涵| 在线观看日韩av先锋影音电影院| 日本免费新一区视频| 91福利在线观看| 精品影院一区二区久久久| 欧美在线视频不卡| 狠狠色狠狠色综合系列| 欧美日韩高清一区二区不卡| 国内精品视频一区二区三区八戒| 欧美日韩高清一区二区三区| 国产精品综合一区二区| 欧美一区二区三区小说| 懂色av一区二区三区免费看| 精品免费国产一区二区三区四区| 成人av在线电影| 国产欧美日本一区视频| 国产精品视频500部| 亚洲色图在线播放| 日本中文不卡| 日韩精品色哟哟| 欧美三电影在线| 国产福利一区二区三区视频| 精品国产一二三| 99久久久精品免费观看国产| 国产精品传媒视频| 日本午夜精品电影| 日本美女一区二区三区视频| 欧美午夜在线观看| 成人午夜私人影院| 欧美激情一区二区三区四区| 九色91在线视频| 午夜激情久久久| 欧美人伦禁忌dvd放荡欲情| 国产91对白在线观看九色| 久久夜色精品国产噜噜av| 国产视频不卡| 亚洲一区二区精品3399| 91国产成人在线| 风间由美性色一区二区三区| 国产性做久久久久久| 美脚丝袜一区二区三区在线观看| 五月激情丁香一区二区三区| 欧美精品乱码久久久久久按摩| av一区二区久久| 亚洲免费在线观看| 色婷婷av久久久久久久| 国产成都精品91一区二区三| 欧美激情一区二区三区在线| 日韩三级在线播放| 国产一区二区伦理片| 久久精品欧美日韩| 日韩欧美精品久久| 国内精品伊人久久久久影院对白| 久久综合狠狠综合久久综合88| 久久亚洲高清| 久久99精品国产.久久久久久| 精品日韩欧美在线| 免费看成人av| 久久精品国产99| 国产亚洲制服色| 亚洲精品人成| 国产不卡在线一区| 亚洲色图欧洲色图| 欧美亚洲国产怡红院影院| 99久久99久久精品免费观看| 亚洲精品乱码久久久久久| 精品污污网站免费看| 91丨九色丨国产| 视频一区欧美精品| 亚洲精品在线电影| 亚洲成人自拍| www.激情成人| 亚洲第一搞黄网站| 日韩视频一区二区三区| 精品免费日产一区一区三区免费| 麻豆freexxxx性91精品| 久久久久国产成人精品亚洲午夜| 亚洲 日韩 国产第一区| 成人免费观看男女羞羞视频| 一区二区在线观看免费视频播放| 911精品国产一区二区在线| 精品一区二区日本| 国产在线精品国自产拍免费| 国产精品久久久久aaaa樱花| 欧美性一区二区| 精品日韩电影| 国产一区二区成人久久免费影院| ●精品国产综合乱码久久久久| 欧美日韩精品三区| 免费在线成人av| 成人涩涩免费视频| 性感美女极品91精品| 久久久亚洲精品一区二区三区| 色婷婷综合在线|