博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
canvas学习笔记05:nonzero winding rule
阅读量:5116 次
发布时间:2019-06-13

本文共 1824 字,大约阅读时间需要 6 分钟。

 

<!DOCTYPE html> <html> <head> <meta charset="gbk"> </head> <body> <canvas id='c' width='800' height='600' style="border:1px solid #ddd"></canvas> <script> if (!window.requestAnimationFrame) { window.requestAnimationFrame = (window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame || function (callback) { return window.setTimeout(callback, 17 /*~ 1000/60*/); }); } if (!window.cancelRequestAnimationFrame) { window.cancelRequestAnimationFrame = (window.cancelAnimationFrame || window.webkitCancelRequestAnimationFrame || window.mozCancelRequestAnimationFrame || window.msCancelRequestAnimationFrame || window.oCancelRequestAnimationFrame || window.clearTimeout); } var canvas = document.getElementById( 'c' ), ctx = canvas.getContext( '2d' ), cw = window.innerWidth, ch = window.innerHeight, angle = 0, speed = 0.1, step = 10, raq = null, color = 'rgb(236, 208, 120)'; function drawGuidewire(){ ctx.strokeStyle = '#ddd'; ctx.lineWidth = 0.5; for (var i = step + 0.5; i < canvas.width; i += step) { ctx.beginPath(); ctx.moveTo(i, 0); ctx.lineTo(i, canvas.height); ctx.stroke(); } for (var i = step + 0.5; i < canvas.height; i += step) { ctx.beginPath(); ctx.moveTo(0, i); ctx.lineTo(canvas.width, i); ctx.stroke(); } } drawGuidewire(); (function drawFrame(){ ctx.save(); if ((angle+speed) >= 2*Math.PI) { cancelRequestAnimationFrame(raq); angle = 2*Math.PI; }else{ angle +=speed; raq = requestAnimationFrame(drawFrame,canvas); } ctx.strokeStyle =color; ctx.fillStyle =color; ctx.beginPath(); ctx.arc(canvas.width/2, canvas.height/2, 150,0, angle, false); ctx.arc(canvas.width/2, canvas.height/2, 100, angle, 0, true); ctx.fill(); ctx.stroke(); ctx.restore(); }()); </script> </body> </html>

运行代码

转载于:https://www.cnblogs.com/zhuzf/p/3610831.html

你可能感兴趣的文章
Xcode的一些使用技巧
查看>>
PHPCMS 标签与示例
查看>>
JavaScript: 认识 Object、原型、原型链与继承。
查看>>
性能测试系列学习 day1
查看>>
Linux服务器开启tomcat的gc日志
查看>>
PCL—点云滤波(基于点云频率) 低层次点云处理
查看>>
Flask框架视图多层装饰器问题
查看>>
VS2005新建应用工程出错解决方法
查看>>
自制Informatica教程
查看>>
Day03 单行函数
查看>>
MongoDB 安全配置
查看>>
【接口】【USB】1.学习笔记
查看>>
dubbo的简单实现
查看>>
在学习oauth时学到的
查看>>
hdu2602Bone Collector(01背包)
查看>>
Temporary failure in name resolutionf的解决方法
查看>>
在jinja2的页面中使用javascript对页面元素进行删除
查看>>
hibernate save,update,saveorupdate方法有什么区别
查看>>
jqueryUI小案例
查看>>
Git的入门
查看>>