canvas(三) star- demo
/**
* Created by xianrongbin on 2017/3/8.
* 本例子使用渐变画出 璀璨星空
*/
var dom = document.getElementById('clock'),
ctx = dom.getContext('2d'),
cirucle = Math.PI; //ctx.lineJoin='miter'; //round 圆角 bevel 斜角 miter尖角
//ctx.miterLimit=150;//默认10 只有当 lineJoin=miter,当超过这个度数,会变成bevel,只有显示十分尖锐的角,才会修改 /*var skyStyle=ctx.createLinearGradient(0,0,0,ctx.canvas.height);*/ var skyStyle=ctx.createRadialGradient(dom.width/,dom.height/,,dom.width/,ctx.canvas.height,ctx.canvas.height);
skyStyle.addColorStop(0.0,'#035');
skyStyle.addColorStop(1.0,'black'); ctx.fillStyle =skyStyle; //填充天边渐变色
ctx.fillRect(, , ctx.canvas.width, ctx.canvas.height);
ctx.fill(); /**
*
* @param ctx 画布上下文
* @param r 内圆半径
* @param R 外圆半径
* @param x 横向偏移量
* @param y 纵向偏移量
* @param rot 选择度数
*/
function drawStar(ctx, x, y, outerR, innerR, rot) {
ctx.beginPath();
for (var i = ; i < ; i++) {
var ourRad = ( + i * - rot) / * cirucle,
innerRad = ( + i * - rot) / * cirucle; ctx.lineTo(Math.cos(ourRad) * outerR + x,
-Math.sin(ourRad) * outerR + y); ctx.lineTo(Math.cos(innerRad) * innerR + x,
-Math.sin(innerRad) * innerR + y);
}
ctx.closePath(); ctx.fillStyle = '#c1c';
ctx.strokeStyle = '#fd5';
ctx.lineWidth = ;
ctx.stroke();
ctx.fill();
}
for (var i = ; i < ; i++) {
var r = Math.random() * + ,//Math.random() 生产10-20随机数
x = Math.random() * dom.width,
y = Math.random() * dom.height*0.65,
a =Math.random() * ;
drawStar(ctx, x, y, r, r / 2.0, a);
}
canvas(三) star- demo的更多相关文章
- HTML5 之Canvas 绘制时钟 Demo
<!DOCTYPE html> <html> <head> <title>Canvas 之 时钟 Demo</title> <!--简 ...
- SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 SignalR 简单示例 通过三个DEMO学会SignalR的三种实现方式 SignalR推送框架两个项目永久连接通讯使用 SignalR 集线器简单实例2 用SignalR创建实时永久长连接异步网络应用程序
SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 异常汇总:http://www ...
- canvas画箭头demo
效果图: 代码: <!DOCTYPE html> <html> <title>canvas画箭头demo</title> <body> &l ...
- 通过三个DEMO学会SignalR的三种实现方式
一.理解SignalR ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信(即:客户端(Web页面)和服务器端可以互相实时的通知消息 ...
- SignalR的三个Demo
一.理解SignalR ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信(即:客户端(Web页面)和服务器端可以互相实时的通知消息 ...
- Flutter 36: 图解自定义 View 之 Canvas (三)
小菜继续学习 Canvas 的相关方法: drawVertices 绘制顶点 小菜上次没有整理 drawVertices 的绘制方法,这次补上:Vertice 即顶点,通过绘制多个顶点,在进行连线,多 ...
- 通过三个DEMO学会SignalR的三种实现方式 转载https://www.cnblogs.com/zuowj/p/5674615.html
一.理解SignalR ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信(即:客户端(Web页面)和服务器端可以互相实时的通知消息 ...
- canvas 画圈 demo
html代码: <canvas id="clickCanvas2" width="180" height="180" data-to ...
- RobotFrameWork接口报文测试-----(三)demo的加强版(数据驱动测试)
在上一篇RobotFrameWork接口报文测试-----(二)demo的升级版基础上,将接口的xml的格式保存在xml文件中,然后程序如果增加一个接口,在xml文件里添加即可,无需修改自动化测试里的 ...
- html 5 canvas 绘制太极demo
一个练习canvas的小案例.其中若有小问题,欢迎大神拍砖……^_* 代码效果预览地址:http://code.w3ctech.com/detail/2500. <div class=" ...
随机推荐
- Git 2.x 中git push时遇到 push.default 警告的解决方法
近在学习使用 git&GitHub,然后今天遇到了一个问题.在执行 git add 和 git commit 操作之后,再进行 git push 操作,出现了如下提示: $ git push ...
- Http协议基础及发展历史
一.网络分层协议 经典五层模型 1.物理层:(电脑的硬件,网卡端口,网线,网线连出去的光缆) 定义物理设备如何传输数据 2.数据链路层 在通信的实体间建立数据链路连接. 两台机器物理上是可以连接在一起 ...
- nginx upstream轮询配置
nginx upstream nginx的upstream官方地址为:http://nginx.org/cn/docs/http/ngx_http_upstream_module.html 轮询分为多 ...
- Markdown语法说明(转)
Markdown语法说明(转) Markdown创始人John Gruber的语法说明 附上本文链接 NOTE: This is Simplelified Chinese Edition Docume ...
- Android之微信布局篇
一.准备工作: 1. 下载好相关的图片: 2.创建一个名WeiChat的项目,将图片复制到res----->drawable-hdpi目录下. 二.编写代码: 1. 最终效果: 2.微信可划分为 ...
- Node核心模块
在Node中,模块主要分两大类:核心模块和文件模块.核心模块部分在 Node 源代码的编译过程中,编译进了二进制执行文件.在 Node 进启动时,部分核心模块就被直接加载进内存中,所以这部分核心模块引 ...
- ftok()函数深度解析
[转载] 原文链接:https://blog.csdn.net/u013485792/article/details/50764224 关于ftok函数,先不去了解它的作用来先说说为什么要用它,共享内 ...
- java web 三大核心组件Filter
Filter 过滤: 定义: 过滤器是客户端与服务端之间的一道网,可以对请求的数据进行拦截和修改,同时也可以对,响应数据进行拦截和修改
- Node学习笔记(二)
1.package.json详解Node.js 在调用某个包时,会首先检查包中 package.json 文件的 main 字段,将其作为包的接口模块,如果 package.json 或 main 字 ...
- redis排序
1.sort 排序最常见的是sort命令,可以对列表或者有序集合排序,最简单的排序方式如下: > lpush list (integer) > lpush list (integer) & ...