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绘图夜空小屋的更多相关文章

  1. Canvas绘图之平移translate、旋转rotate、缩放scale

    画布操作介绍 画布绘图的环境通过translate(),scale(),rotate(), setTransform()和transform()来改变,它们会对画布的变换矩阵产生影响. 函数 方法 描 ...

  2. HTML5 学习总结(四)——canvas绘图、WebGL、SVG

    一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...

  3. HTML5学习总结——canvas绘制象棋(canvas绘图)

    一.HTML5学习总结——canvas绘制象棋 1.第一次:canvas绘制象棋(笨方法)示例代码: <!DOCTYPE html> <html> <head> & ...

  4. HTML5_03之Canvas绘图

    1.Canvas绘图--JS绘图: <canvas id='c1' width='' height=''></canvas> * Canvas尺寸不能用CSS设置: c1.he ...

  5. javascript的canvas绘图的基本用法

    <canvas>是HTML里面非常强大的元素,利用它结合js可以实现很多动画效果,大大增强交互性.下面,我想用图文并茂的方式阐述一下canvas的绘图机制的基础内容,话不多说,先上代码: ...

  6. canvas绘图、WebGL、SVG

    目录 一.Canvas 1.1.创建canvas元素 1.2.画线 1.3.绘制矩形 1.4.绘制圆弧 1.5.绘制图像 1.6.绘制文字 1.7.随机颜色与简单动画 二.WebGL 2.1.HTML ...

  7. HTML5 学习笔记(四)——canvas绘图、WebGL、SVG

    一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...

  8. Canvas绘图基础(一)

    简单图形绘制 矩形:描边与填充 Canvas的API提供了三个方法,分别用于矩形的清除.描边及填充 clearRect(double x, double y, double w, double h) ...

  9. Canvas绘图中的路径描边与填充

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博客地址为http://www.cnblogs.com/jasonnode/ .网站上有对应每一 ...

随机推荐

  1. MySQL Workbench建表时 PK NN UQ BIN UN ZF AI 的含义

    [转自网络]https://my.oschina.net/cers/blog/292191 PK Belongs to primary key 作为主键 NN Not Null 非空 UQ Uniqu ...

  2. 树莓派3B的食用方法-1(装系统 网线ssh连接)

    首先要有一个树莓派3B , 在某宝买就行, 这东西基本上找到假货都难,另外国产和英国也没什么差别,差不多哪个便宜买哪个就行. 不要买店家的套餐,一个是配的东西有些不需要,有的质量也不好. 提示:除了G ...

  3. Quality 是什么?

    Quality 是什么? 通常,我们谈及 Quality(质量)时,最常见的问题就是:Quality 是什么? 有很多业界先驱和研究人员已经回答了这个问题,我在这里并不会再给出一个新的答案.在学习总结 ...

  4. Windbg Extension NetExt 使用指南 【3】 ---- 挖掘你想要的数据 Managed Heap

    摘要 : NetExt中有两个比较常用的命令可以用来分析heap上面的对象. 一个是!wheap, 另外一个是!windex. !wheap 这个命令可以用于打印出heap structure信息. ...

  5. 为什么说每个程序员都应该刷几道LeetCode?

    2015年即将过去,最近在回顾和总结过去一年的工作经历,发现自己并不能算是一名合格的程序员. Google某前员工Lucida在文章<白板编程访谈——Why,What,How>当中写道: ...

  6. 用java开发微信公众号:接收和被动回复普通消息(三)

    上篇说完了如何接入微信公众号,本文说一下微信公众号的最基本功能:普通消息的接收和回复.说到普通消息,那么什么是微信公众号所定义的普通消息呢,微信开发者文档中提到的接收的普通消息包括如下几类: 1.文本 ...

  7. 关于php语言的使用!

    ------php语言与JavaScript的使用 方法是相似 <script type="text/javascript"> </script>--js与 ...

  8. Swift3中函数的使用

    前言:前不久,Swift语言也更新到了3.0版本,对编程有一定基础的朋友一定不会对函数这个概念陌生.而Swift语言中的函数也是大同小异的,今天就跟着小编来学习一下Swift3中函数的不一样的用法. ...

  9. Hyper-V1:创建和管理虚拟机

    Hyper-V是微软的管理虚拟机(Virtual Machine)的服务,在安装Hyper-V功能之后,系统自动安装可视化的虚拟机管理工具:Hyper-V Manager.在同一台物理机上,能够使用H ...

  10. Step01-题目申报

    毕业设计题目申报表 姓名:  王刚 学号:  201303041029 题目名称: 通用型云端物联网网关系统的设计与实现 毕业设计(论文)简介: 2017是物联网进入加速发展或成为最贴近普通民众的实用 ...