手机刮刮乐HTML5代码详解编程语言
2023-06-13 09:20:25 时间
手机刮刮乐HTML5代码,
使用原型prototype扩展了一个clearArc 清除圆内像素的功能,
此功能未完成扇形清除功能,
此外,在清除圆内的像素时,还有点瑕疵,右边和下边还不够圆滑,有明显的齿状。如果你找到修复方法请一定要告诉我哟。不过此清除方法用于刮刮乐已经完全满足需求了
!DOCTYPE html html head meta charset="UTF-8" meta name="viewport" content="width=device-width, initial-scale=1.0" title 刮刮乐 /title script type="text/javascript" window.onload = function() { init(); CanvasRenderingContext2D.prototype.clearArc=function(x,y,radius,startAngle, endAngle, counterclockwise){ var distance = function(x0,y0,x1,y1){ var dis = Math.sqrt(Math.pow(x0-x1,2)+Math.pow(y0-y1,2)); //return Math.ceil(dis*10000)/10000; return Math.round(dis*10000)/10000; //首先获得矩形 var diameter = radius*2; var startX = x-radius; var cx = radius-(0-startX); startX = startX 0?0:startX; cx = cx-startX; var startY = y-radius; var cy = radius-(0-startY); startY = startY 0?0:startY; cy = cy-startY; var imgData = this.getImageData(startX,startY,diameter,diameter);//需要处理的矩形 for (var i=0;i imgData.data.length;i+=4){ //矩阵内的坐标 var ii = i/4; var ix = Math.floor(ii/imgData.width); var iy = ii%imgData.height; var dis = distance(ix,iy,cx,cy); if(dis =radius){//此点在圆内 imgData.data[i+0]=0; imgData.data[i+1]=0; imgData.data[i+2]=0; imgData.data[i+3]=0; continue; var dr = dis-radius; if(dr Math.SQRT2){ var n = Math.sqrt(Math.pow(dr, 2)/2)*256;//新 var o = imgData.data[i+3]; imgData.data[i+3]=n o?n:o; continue; this.putImageData(imgData,startX,startY); function init() { var imageWidth = 200; var imageHeight = 100; var gglc = document.getElementById("gglc"); var gglc2D = gglc.getContext("2d"); gglc2D.fillStyle = #cccccc; //设置覆盖层的颜色 gglc2D.fillRect(1, 1, imageWidth, imageHeight); //设置覆盖的区域 //gglc2D.clearArc(25,25,20); gglc.addEventListener("touchmove", function(event) { event.preventDefault(); for(var i in event.targetTouches){ var touch = event.targetTouches[i]; gglc2D.clearArc(touch.pageX,touch.pageY,20); }, false); gglc.addEventListener("touchstart", function(event) { event.preventDefault(); for(var i in event.targetTouches){ var touch = event.targetTouches[i]; gglc2D.clearArc(touch.pageX,touch.pageY,20); }, false); /script /head body div div style="position: absolute; width: 200px; height: 100px; text-align: center;line-height: 100px;border: 1px solid #ccc;" 谢谢惠顾 /div canvas id="gglc" width="201" height="101" /canvas /div /body /html
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/8736.html
cjava相关文章
- html5 空格_打前端代码用一堆空格符
- cropper.js 实现HTML5 裁剪图片并上传(裁剪上传头像。)「建议收藏」
- HTML5期末大作业:大学生个人网站设计——我们的班级(7页) HTML+CSS+JavaScript 学生DW网页设计作业成品 html网页制作代码大全 html5网页设计作业代码
- css怎么实现背景图片自适应窗口大小_html5背景图片自适应
- 【HTML5】HTML5 新增 input 表单属性 ( required 属性 | placeholder 属性 | autofocus 属性 | autocomplete 属性 )
- html5开发手机打电话发短信功能详解编程语言
- Html5实现手机九宫格密码解锁功能详解编程语言
- HTML5 表单元素详解编程语言
- MySQL与HTML5结合,实现强大的网页数据库系统(mysqlhtml5)
- 利用HTML5和MySQL实现数据交换(html5连接mysql)
- 集结 HTML5 与 MySQL,搭建无可抵挡的猛力!(html5与mysql)
- 如何使用HTML5连接MySQL数据库:同步数据更加高效和安全。(html5连接mysql数据库)
- HTML5 教程
- HTML5 新元素
- HTML5 定位
- js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
- 使用js检测浏览器是否支持html5中的video标签的方法