日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

【CSON原创】HTML5字体动态粒子效果发布

發布時間:2023/12/18 HTML 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【CSON原创】HTML5字体动态粒子效果发布 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

功能說明:

  輸入字體,按確定后,右側畫布出現字體的動態粒子效果。

效果預覽:

輸入顯示內容:

實現分析:

  之前看過hongru的事情沒有想象中那么難--JX官網首頁3D粒子效果,和當耐特磚家的HTML5實驗室【三十八】--玩轉像素系列【二】,因此自己也試著利用getImageData寫一下粒子效果。原理上應該和他們的差不多,不過采用了輸入即可得的形式,在文本框輸入任何內容,可以在畫布中得出輸入內容的粒子效果。由于前面兩篇文章已經把粒子效果的實現原理闡述得比較清楚,因此這里就不再重新詳述,只說說實現時的幾個要點。

?

  1.如何生成3D坐標下隨機方向的速度。

  在2D坐標下,如果需要生成一個隨機方向的速度,方法很簡單,我們可以獲取一個隨機角度,并且根據該角度把速度分別投影在xy軸下即可。但是如果在3D坐標下如何生成隨機方向的速度呢?其實也可以使用相似的原理,我們需要兩個隨機角度(a1,a2),一個角度用于Z軸的投影,另一個用于x或y軸的投影。那么投影在z軸方向的速度為:Vz=V*sin(a1),投影在xy平面的速度分量為:Vxy=V*cos(a1),再根據該分量得出,投影在x軸的分量為:Vx=Vxy*cos(a2),y軸分量為:Vx=Vxy*sin(a2),代碼如下:

var zSpeed=this.speed*Math.sin(this.angleZ);
var xySpeed=this.speed*Math.cos(this.angleZ);
var xSpeed=xySpeed*Math.cos(this.angleX);
var ySpeed=-xySpeed*Math.sin(this.angleX);

  

  2.如何使隨機分布的粒子組成字母。

  首先通過getImageData獲取字體每個像素點得信息,并創建每個點對象,保存它們的位置和顏色,透明度等信息。然后在初始化時使粒子分布在隨機位置上,需要組成文字的時候,使點對象快速從現在的位置移動到之前保存的位置上。

?

  3.如何使點受Z軸坐標的影響。

  Z軸坐標通過點的位置,尺寸體現,因此具體實現是首先通過點的z軸計算出該點縮放的比例,然后根據該比例重新計算點的位置和尺寸。

  

resetOnZValue:function(pos,radius){
var z=pos[2];
var halfWidth=center[0];
var scale=(halfWidth+z)/halfWidth;
var newPos=[];
var newRadius;
newPos[0]=center[0]+(pos[0]-center[0])*scale;//計算受z軸影響后小球的位置值和尺寸
newPos[1]=center[1]-(center[1]-pos[1])*scale;
newPos[2]=z;
newRadius=radius*scale;
return [newPos,newRadius];//返回小球受X軸影響后新的坐標和尺寸
},

  更加詳細的解釋可以參考hongru的rotate 3D [初識篇]。

?

  完整demo下載:點擊下載

  歡迎轉載,請標明出處:http://www.cnblogs.com/Cson/archive/2012/04/02/2429734.html




?


轉載于:https://www.cnblogs.com/Cson/archive/2012/04/02/2429734.html

總結

以上是生活随笔為你收集整理的【CSON原创】HTML5字体动态粒子效果发布的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。