使用javascript和canvas画月半弯,月半弯好浪漫!浏览器须支持html5

查看效果:http://keleyi.com/a/bjad/8xqdm0r2.htm

以下是代码:

 <!doctype html>
<html>
<head>
<title>使用javascript和canvas画月半弯-柯乐义</title>
<style>
canvas{display: block;border:1px dotted skyblue;}
</style>
</head>
<body>
<h1>使用javascript和canvas画月半弯·柯乐义</h1>
<canvas id="canvas-keleyi-com" width="500" height="400"></canvas>
<script>
var nimo = {};
window.onload = function () {
nimo.canvas = document.getElementById('canvas-ke'+'leyi-com');
nimo.context = nimo.canvas.getContext('2d');
nimo.starBgImg = new Image();
nimo.starBgImg.src = 'http://keleyi.com/keleyi/phtml/html5/22/star-bg.jpg';
nimo.starBgImg.onload = function () {
//填充星星背景
nimo.statBg = nimo.context.createPattern(nimo.starBgImg, 'repeat')
nimo.context.rect(0, 0, nimo.canvas.width, nimo.canvas.height);
nimo.context.fillStyle = nimo.statBg;
nimo.context.fill();
//绘制月亮轮廓
nimo.context.beginPath();
nimo.context.arc(200, 200, 100, 0.6 * Math.PI, 1.3 * Math.PI);
nimo.context.bezierCurveTo(140, 119, 93, 224, 169, 295)
//填充月亮轮廓和设置投影
nimo.context.shadowColor = "blue";
nimo.context.shadowBlur = 3;
nimo.context.strokeStyle = "blue";
nimo.context.stroke();
//填充放射渐变给月亮
nimo.radialGradient = nimo.context.createRadialGradient(150, 200, 0, 150, 200, 50);
nimo.radialGradient.addColorStop(0, 'white')
nimo.radialGradient.addColorStop(1, '#999')
nimo.context.fillStyle = nimo.radialGradient;
nimo.context.fill()
//绘制月亮的研究和嘴巴
nimo.context.shadowColor = "white";
nimo.context.beginPath();
nimo.context.moveTo(110, 173);
nimo.context.lineTo(114, 173);
nimo.context.moveTo(119, 173);
nimo.context.lineTo(123, 173);
nimo.context.stroke();
nimo.context.beginPath();
nimo.context.arc(116, 183, 2, 0, 2 * Math.PI);
nimo.context.stroke();
nimo.context.shadowColor = 'transparent';
nimo.context.font = "15px 微软雅黑"
nimo.context.fillText('您好,我是月亮,祝您的美梦像星星一样永恒!', 100, 100)//设置文字及在图片上的位置
}
}
</script>
</body>
</html>

web前端:http://www.cnblogs.com/jihua/p/webfront.html

使用javascript和canvas画月半弯的更多相关文章

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

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

  2. JavaScript之canvas

    num.push(x,y); 动画草图(举个栗子,我们把数字“2”给画出来): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...

  3. 月半小夜曲下的畅想--DOCTYPE模式

    月半小夜曲下的畅想--DOCTYPE模式 @(css3 box-sizing)[doctype声明|quirks模式|妙瞳] DOCTYPE文档类型标签,该标签是将特定的标准通用标记语言或者XML文档 ...

  4. HTML5 Canvas画数字时钟

    先不说废话,没代码算个蛋. 一些地方注释都写得比较清楚,不过这只是部分,因为只有秒针,但是时针,分针的逻辑都是一致的. 代码中有些坐标不知道为什么较不准,看看就好

  5. Canvas画椭圆的方法

    虽然标题是画椭圆,但是我们先来说说Canvas中的圆 相信大家对于Canvas画圆都不陌生   oGC.arc(400, 300, 100, 0, 2*Math.PI, false); 如上所示,直接 ...

  6. JavaScript+html5 canvas实现本地截图教程

    这篇文章主要介绍了JavaScript+html5 canvas实现本地截图教程,对截图功能感兴趣的小伙伴们可以参考一下 最近有时间了解了下html5的各API,发现新浪微博的头像设置是使用canva ...

  7. HTML5之Canvas画圆形

    HTML5之Canvas画圆形 1.设计源码 <!DOCTYPE html> <head> <meta charset="utf-8" /> & ...

  8. HTML5之Canvas画正方形

    HTML5之Canvas画正方形 1.设计源码 <!DOCTYPE html> <head> <meta charset="utf-8" /> ...

  9. 初探Javascript之Canvas

    什么是Canvas <canvas>是 HTML5 新增的元素,可使用JavaScript脚本来绘制图形. canvas是一个矩形区域,您可以控制其每一像素. 引入Canvas ```ht ...

随机推荐

  1. iOS---runtime介绍

    本文目录 1.Runtime简介 2.Runtime相关的头文件 3.技术点和应用场景 3_1.获取属性\成员变量列表 3_2.交换方法实现 3_3.类\对象的关联对象,假属性 3_4.动态添加方法, ...

  2. OpenGL学习进程(13)第十课:基本图形的底层实现及算法原理

        本节介绍OpenGL中绘制直线.圆.椭圆,多边形的算法原理.     (1)绘制任意方向(任意斜率)的直线: 1)中点画线法: 中点画线法的算法原理不做介绍,但这里用到最基本的画0<=k ...

  3. 服务器.htaccess 详解以及 .htaccess 参数说明(转载)

    htaccess文件(或者”分布式配置文件”)提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录.作为用户,所能使用的命令受到限 ...

  4. 【WP 8.1开发】如何动态生成Gif动画

    相信如何为gif文件编码,很多朋友都会,而难点在于怎么让GIF文件中的帧动起来,也就是创建gif动画. Gif文件编码方法 先简单介绍一下编码的方法. 1.调用BitmapEncoder.Create ...

  5. python进程池:multiprocessing.pool

    本文转至http://www.cnblogs.com/kaituorensheng/p/4465768.html,在其基础上进行了一些小小改动. 在利用Python进行系统管理的时候,特别是同时操作多 ...

  6. ELF文件

    ELF文件格式是一个开发标准,各种UNIX系统的可执行文件都采用ELF格式,它有三种不同的类型: 可重定位的目标文件 可执行文件 共享库 现在分析一下上一篇文章中经过汇编之后生成的目标文件max.o和 ...

  7. php的mysql\mysqli\PDO(二)mysqli

    原文链接:http://www.orlion.ga/1147/ mysqli有面向对象风格和面向过程风格,个人感觉还是用面向对象风格比较好(毕竟是面向对象) 1.mysqli::_construct( ...

  8. Java 8新特性-5 内建函数式接口

    在之前的一片博文 Lambda 表达式,提到过Java 8提供的函数式接口.在此文中,将介绍一下Java 8四个最基本的函数式接口 对于方法的引用,严格来讲都需要定义一个接口.不管我们如何操作实际上有 ...

  9. 窥探Swift之别具一格的Struct和Class

    说到结构体和类,还是那句话,只要是接触过编程的小伙伴们对这两者并不陌生.但在Swift中的Struct和Class也有着令人眼前一亮的特性.Struct的功能变得更为强大,Class变的更为灵活.St ...

  10. MySQL分区表的管理~1

    一.如何管理RANGE和LIST分区 以该分区表为例 CREATE TABLE members ( id INT, fname ), lname ), dob DATE ) PARTITION BY ...