1. 火焰的構造
//菱形的構造有兩種方法推薦,一種是直接用moveto+lineto 直接連線畫出(推薦這種),構造火焰
function
torch()
}else
}//中心點
this.rectcenterpoint = ; //
矩形中心點
//運動速度
this.speed=
//火焰存活時間
this.life=this.width*random(1,2);
this.remaining_life=this.maxwidth/this.life;
this.radius = math.sqrt(math.pow(this.width,2)+math.pow(this.width,2));
this.g=random(20,70);
//繪製菱形
this.rect=function
(ctx),$,37,$)`;
this.location.y,this.width,this.width);
-this.rectcenterpoint.y);
ctx.moveto(
this.location.x,this
.location.y);
ctx.lineto(
this.location.x-this.width,this.location.y-this
.width);
ctx.lineto(
this.location.x,this.location.y-2*this
.width);
ctx.lineto(
this.location.x+this.width,this.location.y-this
.width);
ctx.lineto(
this.location.x,this
.location.y);
//漸變顏色
let grd = ctx.createradialgradient(this.rectcenterpoint.x,this.rectcenterpoint.y,random(1,8),this.rectcenterpoint.x,this.rectcenterpoint.y, this
.radius);
grd.addcolorstop(1,`rgba(245,$,37,.8)`);
grd.addcolorstop(0,`rgb(244,$,37)`);
ctx.fillstyle=grd;
ctx.fill();
ctx.closepath()}}
function
random(min,max)
一種是通過矩形的旋轉與平移,但是矩形的旋轉rotate,旋轉之後是改變了canvas畫布的方向,而不是單純的矩形的旋轉;也因為是改變了畫布的方法,所以畫布的座標是根據旋轉之後的的位置重新定位的
上面是平移或旋轉之後畫布的位置(以座標軸看出)
2.初始化資料
//3.滑鼠位置獲取初始化,存放火焰的陣列
let arrtorch=;
//滑鼠的當前位置
let mouse={};
for(let i=0;i<8;i++)
//4.繪製畫布滑鼠事件
window.onmousemove= function
(event)
window.onmouseout = function
()
//5. 其他例項化function
draw()
}requestanimationframe(draw);
}draw();
css 樣式
htmlwidth="600px" height="600px">注:canvas 是乙個行內元素,css 設定大小是顯示在螢幕內畫素的大小 在html 中設定的大小是表示了本身的大小
1view code2324
2526161
162
Django實現刪除課程方法 簡單方式
一 編寫檢視類 繼承了deleteview類後,後續 就不需要重複刪除動作了 只需要宣告確認刪除模板template name和刪除完成之後的介面success url class deletecourseview usercoursemixin,deleteview template name c...
實現iOS本地化的簡單方式 XLIFF
從xcode5之後蘋果啟用了乙個叫做base internationalization的工具,這篇文章主要對這個工具進行介紹和使用.在xcode中開啟base internationalization 最近幾個版本的xcode中base internationalization是預設開啟的.如果不確...
cell高度自適應實現的最簡單方式
曾經為了實現cell的高度自適應,不知道吃了多少苦。那個時候,是在我的資料模型model中新增乙個height屬性,實現它的get方法,在get方法中計算需要多行顯示文字的高度,然後再加上其他亂七八糟的高度並返回,然後在tableview的 cgfloat tableview uitableview...