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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

h5大转盘 php,HTML5 canvas实现中奖转盘的实例代码

發布時間:2024/7/23 php 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 h5大转盘 php,HTML5 canvas实现中奖转盘的实例代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章給大家帶來的內容是關于HTML5 canvas實現中獎轉盤的實例代碼,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

最近在學canvas做動畫,于是就寫個轉盤練下手。

上個簡陋的成果圖(中間那個是轉的指針,外面的圈是圖片,懶得寫了哈哈哈)

代碼很簡單,都注釋了,直接上代碼吧,嚶嚶嚶

html

您的瀏覽器不支持canvas

css

#canvas{

position: absolute;

left: 230px;

top: 230px;

}

#img{

width: 600px;

height: 600px;

}

jsvar canvas = document.getElementById('canvas');

var context = canvas.getContext('2d');

//設定畫布和寬

canvas.width=140;

canvas.height=140;

var then = Date.now();

var now;//利用時間差來控制轉盤最小轉動時間

var first_deg=0;//用來記錄轉動的角度

var rotate_deg=0;//每次轉動的角度,用來實現變速運動

var end_deg =85;//中獎角度

var speedUp = true;//判斷是否在加速階段

var f;

// 因為canvas的rotate函數是根據左上角坐標(0,0)來旋轉的,所以移動畫布

context.translate(70,70);

function draw(){

context.clearRect(-70, -70, 70, 70);

context.beginPath();

context.arc(0, 0, 50, Math.PI / 180 * 0, Math.PI / 180 * 360, true);

context.moveTo(-50,0);

context.lineTo(50,0);

context.lineTo(0,-70);

context.rotate(rotate_deg*Math.PI/180);

context.closePath();

context.fillStyle='red';

context.fill();

}

// 將運動分為3段,加速,勻速,減速

function loop(){

//循環調用,產生動畫效果

f = window.requestAnimationFrame(loop);

now = Date.now();

//開始加速轉動,轉到速度為20就不加速了,至于為什么是20,看起來舒服而已

if(rotate_deg<=20&&speedUp){

rotate_deg +=1;

};

//2s后開始減速(即最小轉動時間),減速是為了視覺上的美觀

if(now - then > 2000){

//如果下面設置的是固定角度,那這里的最小速度建議為1,因為每次轉動角度過大,一圈很可能錯過中獎的角度,導致轉很多圈。

if(rotate_deg>=2){

speedUp = false;

rotate_deg -=1;

}

//設置中獎區間為+-5度(設置固定角度會讓動畫有點難看)

if(first_deg%360>=end_deg-5&&first_deg%360<=end_deg+5){

window.cancelAnimationFrame(f);//停止循環

//中獎操作

}

};

first_deg += rotate_deg;//記錄轉過的角度

draw();//繪制圖形

}

loop();

最后

現在這個轉盤比較大的問題就是,如果中獎區間比較小,那減速后轉動的時間就長一些,最低速度轉很久才停下。當區間大的時候一下子就停下了,減速效果不明顯,視覺上看起來很奇怪。

相關文章推薦:

總結

以上是生活随笔為你收集整理的h5大转盘 php,HTML5 canvas实现中奖转盘的实例代码的全部內容,希望文章能夠幫你解決所遇到的問題。

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