伙伴们休息啦canvas绘图夜空小屋
HTML5 canvas绘图夜空小屋
伙伴们园友们,夜深了,休息啦,好人好梦...
查看效果:http://hovertree.com/texiao/html5/28/
效果图如下:
代码如下:
- <!doctype html>
- <html>
- <head><meta name="viewport" content="width=device-width, initial-scale=1" />
- <title>HTML5 Canvas绘制恬静夜景? - 何问起</title><base target="_blank" />
- <meta charset="utf-8">
- <style>*{margin:0px;padding:0px;}body{text-align:center;}a{color:#333333;}</style>
- </head>
- <body>
- <div><h2>何问起:程序媛,攻城狮,入夜了,睡觉啦......</h2>
- </div>
- <canvas id="hovertreecanvas" style="display:block;margin:0px auto;border:1px solid #aaa;">
- 何问起提醒:此浏览器不支持canvas,请更换浏览器
- </canvas>
- <div><a href="http://hovertree.com/h/bjaf/umtdyo4d.htm">原文</a> <a href="http://hovertree.com">首页</a> <a href="http://hovertree.com/texiao/">特效</a></div>
- <script>
- hovertreenight(); setInterval(hovertreenight, 4000);
- function hovertreenight () {
- canvas = document.getElementById('hove'+'rtreecanvas');
- canvas.width=1000;
- canvas.height=560;
- context=canvas.getContext('2d');
- drawing(context);
- drawing_start_1(context);
- drawing2(context);
- go();
- draw_moon(context);
- draw_moon2(context);
- draw_moon3(context);
- }
- function go(){
- for(var i=0;i<100;i++){
- var r=Math.random()*10+3;
- var x=Math.random()*1000;
- var y=Math.random()*300;
- var a=Math.random()*360;
- drawing_start_2(context,x,y,r,r/2.0,a);
- }
- }
- function draw(cxt){
- cxt.beginPath();
- for(i=0;i<56;i++){
- cxt.moveTo(0,i*20);
- cxt.lineTo(1000,i*20);
- cxt.stroke();
- }
- }
- function draw2(cxt){
- cxt.beginPath();
- for(i=0;i<56;i++){
- cxt.moveTo(i*20,0);
- cxt.lineTo(i*20,560);
- cxt.stroke();
- }
- }
- function drawing(cxt){ //画整体背景颜色渐变
- var linearGrad=cxt.createLinearGradient(500,0,500,540);
- linearGrad.addColorStop(0.0,'black');
- linearGrad.addColorStop(1.0,'blue');
- cxt.fillStyle=linearGrad;
- cxt.fillRect(0,0,1000,540);
- cxt.fill();
- }
- function drawing2(cxt){ //画房子
- cxt.beginPath();
- cxt.moveTo(0,540);
- cxt.lineTo(1000,540);
- cxt.lineTo(1000,560);
- cxt.lineTo(0,560);
- cxt.closePath();
- cxt.fillStyle="black";
- cxt.fill();
- cxt.stroke();
- cxt.beginPath();
- cxt.moveTo(200,540);
- cxt.lineTo(360,540);
- cxt.lineTo(360,480);
- cxt.lineTo(200,480);
- cxt.closePath();
- cxt.fillStyle="black";
- cxt.fill();
- cxt.stroke();
- cxt.beginPath();
- cxt.moveTo(120,480);
- cxt.lineTo(280,420);
- cxt.lineTo(440,480);
- cxt.closePath();
- cxt.fillStyle="black";
- cxt.fill();
- cxt.stroke();
- cxt.beginPath();
- cxt.moveTo(320,435);
- cxt.lineTo(320,420);
- cxt.lineTo(340,420);
- cxt.lineTo(340,442);
- cxt.closePath();
- cxt.fillStyle="black";
- cxt.fill();
- cxt.stroke();
- cxt.beginPath();
- cxt.moveTo(240,520);
- cxt.lineTo(260,520);
- cxt.lineTo(260,500);
- cxt.lineTo(240,500);
- cxt.closePath();
- cxt.fillStyle="yellow";
- cxt.fill();
- cxt.stroke();
- cxt.beginPath();
- cxt.moveTo(240,510);
- cxt.lineTo(260,510);
- cxt.moveTo(250,500);
- cxt.lineTo(250,520);
- cxt.closePath();
- cxt.stroke();
- }
- function drawing_start_1(cxt){ //星星背景
- cxt.beginPath();
- cxt.rect(0,0,1000,550);
- cxt.closePath();
- cxt.stroke();
- }
- function drawing_start_2(cxt,x,y,outerR,innerR,rot){ //画星星 何问起
- cxt.beginPath();
- for(var i=0;i<5;i++){
- cxt.lineTo((Math.cos(18+i*72-rot)/180*Math.PI)*outerR+x,
- -Math.sin((18+i*72-rot)/180*Math*outerR+y));
- cxt.lineTo(Math.cos((54+i*72-rot)/180*Math.PI)*innerR+x,
- -Math.sin((54+i*72-rot)/180*Math.PI)*innerR+y);
- }
- cxt.fillStyle="#cf3"
- cxt.fill();
- cxt.closePath();
- cxt.stroke();
- }
- function draw_moon(cxt){ //画月亮 hovertree.com
- cxt.beginPath();
- cxt.arc(200, 200, 100, 0.6 * Math.PI, 1.3 * Math.PI);
- cxt.bezierCurveTo(140, 119, 93, 224, 169, 295);
- cxt.fillStyle="#ddd";
- cxt.fill();
- cxt.stroke();
- }
- function draw_moon2(cxt){ //月亮的眼睛。。。
- cxt.beginPath();
- cxt.moveTo(110,180);
- cxt.lineTo(115,180);
- cxt.stroke();
- }
- function draw_moon3(cxt){ //zzz...
- cxt.beginPath();
- cxt.moveTo(40,80);
- cxt.lineTo(60,80);
- cxt.lineTo(40,100);
- cxt.lineTo(60,100);
- cxt.strokeStyle="yellow"
- cxt.stroke();
- cxt.beginPath();
- cxt.moveTo(63,108);
- cxt.lineTo(80,108);
- cxt.lineTo(63,123);
- cxt.lineTo(80,123);
- cxt.strokeStyle="yellow"
- cxt.stroke();
- cxt.beginPath();
- cxt.moveTo(86,130);
- cxt.lineTo(100,130);
- cxt.lineTo(86,142);
- cxt.lineTo(100,142);
- cxt.strokeStyle="yellow"
- cxt.stroke();
- }
- // http://www.cnblogs.com/jihua/p/webfront.html
- </script>
- </body>
- </html>
转自:http://hovertree.com/h/bjaf/umtdyo4d.htm
更多特效:http://www.cnblogs.com/jihua/p/webfront.html
伙伴们休息啦canvas绘图夜空小屋的更多相关文章
- Canvas绘图之平移translate、旋转rotate、缩放scale
画布操作介绍 画布绘图的环境通过translate(),scale(),rotate(), setTransform()和transform()来改变,它们会对画布的变换矩阵产生影响. 函数 方法 描 ...
- HTML5 学习总结(四)——canvas绘图、WebGL、SVG
一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...
- HTML5学习总结——canvas绘制象棋(canvas绘图)
一.HTML5学习总结——canvas绘制象棋 1.第一次:canvas绘制象棋(笨方法)示例代码: <!DOCTYPE html> <html> <head> & ...
- HTML5_03之Canvas绘图
1.Canvas绘图--JS绘图: <canvas id='c1' width='' height=''></canvas> * Canvas尺寸不能用CSS设置: c1.he ...
- javascript的canvas绘图的基本用法
<canvas>是HTML里面非常强大的元素,利用它结合js可以实现很多动画效果,大大增强交互性.下面,我想用图文并茂的方式阐述一下canvas的绘图机制的基础内容,话不多说,先上代码: ...
- canvas绘图、WebGL、SVG
目录 一.Canvas 1.1.创建canvas元素 1.2.画线 1.3.绘制矩形 1.4.绘制圆弧 1.5.绘制图像 1.6.绘制文字 1.7.随机颜色与简单动画 二.WebGL 2.1.HTML ...
- HTML5 学习笔记(四)——canvas绘图、WebGL、SVG
一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...
- Canvas绘图基础(一)
简单图形绘制 矩形:描边与填充 Canvas的API提供了三个方法,分别用于矩形的清除.描边及填充 clearRect(double x, double y, double w, double h) ...
- Canvas绘图中的路径描边与填充
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博客地址为http://www.cnblogs.com/jasonnode/ .网站上有对应每一 ...
随机推荐
- 杂项之python描述符协议
杂项之python描述符协议 本节内容 由来 描述符协议概念 类的静态方法及类方法实现原理 类作为装饰器使用 1. 由来 闲来无事去看了看django中的内置分页方法,发现里面用到了类作为装饰器来使用 ...
- centos7+mono4.2.3.4+jexus5.8.1跨平台起飞
很早之前就开始关注.net跨平台,最近正好测试了下用EF6连接mysql,于是就想直接把网站扔进Linux.查了很多资料,鼓捣了两个晚上,终于成功. 这里我使用的是budgetvm的1G openvz ...
- Lesson 15 Good news
Text The secretary told me that Mr. Harmsworth would see me. I felt very nervous when I went into hi ...
- Thinking in Unity3D:基于物理着色(PBS)的材质系统
关于<Thinking in Unity3D> 笔者在研究和使用Unity3D的过程中,获得了一些Unity3D方面的信息,同时也感叹Unity3D设计之精妙.不得不说,笔者最近几年的引擎 ...
- 分享我对 ASP.NET vNext 的一些感受,也许多年回过头看 So Easy!
写在前面 阅读目录: Visual Studio "14" CTP 关于 ASP.NET vNext ASP.NET vNext 实践 后记 ASP.NET vNext 发布已经过 ...
- Android Studio2.1.2 Java8环境下引用Java Library编译出错
转载请注明出处:http://www.cnblogs.com/LT5505/p/5685242.html 问题:在Android Studio2.1.2+Java8的环境下,引用Java Librar ...
- 查看Job执行的历史记录
SQL Server将Job的信息存放在msdb中,Schema是dbo,表名以“sysjob”开头. 一,基础表 1, 查看Job和Step,Step_ID 是从1 开始的. select j.jo ...
- 【Win 10应用开发】延迟加载图片的另一种方法
上一篇文章中老周给大伙介绍了x:Phase和x:Bind的用法,并演示了一个延迟加载的示例.不过,那个例子会遗留一个问题,就是UI线程被阻塞,所以启动应用较慢. 如果希望图片可以延迟加载,或许我们可以 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(55)-工作流设计-表单布局
系列目录 前言:这一节比较有趣.基本纯UI,但是不是很复杂 有了实现表单的打印和更加符合流程表单方式,我们必须自定义布局来适合业务场景打印!我们想要什么效果?看下图 (我们没有布局之前的表单和设置布局 ...
- How do servlets work-Instantiation, sessions, shared variables and multithreading[reproduced]
When the servletcontainer (like Apache Tomcat) starts up, it will deploy and load all webapplication ...