学习HTML5, Canvas及简单动画的使用
通过在CSDN中的一些简单课程学习,跟随老师联系,做了如下的月亮,太阳和地球的运动效果。纪录在文章中,用于下次使用。
准备工作如下:
1. 使用三张背景图片
| 太阳 | 月亮 | 地球 |
![]() |
![]() |
![]() |
2. 在HTML页面中定义一个CANVAS
<body>
<div style="background-color:green;text-align:center ;">
<canvas id="c" style="background-color:red;" width="300" height="300"></canvas>
</div>
</body>
3. 编写JS代码,使用canvas的API接口。 如 :translate, drawImage 和arc 等方法
<script type="text/javascript">
var sun = new Image(),
moon = new Image(),
earth = new Image();
function init() {
sun.src = "html5image/sun.png";
moon.src = "html5image/moon.png";
earth.src = "html5image/earth.png";
window.requestAnimationFrame(draw);
}
function draw() {
var c = document.getElementById("c");
var ctx = c.getContext("2d");
ctx.globalCompositeOperation = "destination-over";
ctx.clearRect(0, 0, 300, 300);
ctx.fillStyle = "rgba(0,0,0,4)";
ctx.strokeStyle = "rgba(0,153,255,0.4)";
ctx.save();// save current status
ctx.translate(150, 150);
//earth
var time = new Date();
ctx.rotate((2 * Math.PI / 60) * time.getSeconds() + (2 * Math.PI / 60000) * time.getMilliseconds());
ctx.translate(105, 0);
ctx.drawImage(earth, -12, -12);
//moon
ctx.save();
ctx.rotate((2 * Math.PI / 6) * time.getSeconds() + (2 * Math.PI / 6000) * time.getMilliseconds());
ctx.translate(0, -28.5);
ctx.drawImage(moon, -3.5, -3.5);
ctx.restore(); //back to moon save
//the moving path
ctx.restore(); //back to the begin to draw earth
ctx.beginPath();
ctx.arc(150, 150, 105, 0, Math.PI * 2, false);
ctx.stroke();
//sun
ctx.drawImage(sun, 0, 0, 300, 300);
//exec an animation use the frame and the action is draw.
window.requestAnimationFrame(draw);
}
init();
</script>
如果需要知道更详细的步骤,请参考: http://edu.csdn.net/course/detail/1488
最后附上效果图:

动态效果图,请查看下面链接 。 http://ihelper.eu-gb.mybluemix.net/
thanks
学习HTML5, Canvas及简单动画的使用的更多相关文章
- 学习笔记:HTML5 Canvas绘制简单图形
HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" ...
- HTML5 Canvas画图与动画学习59例
HTML5 Canvas画图与动画学习59例 学习HTML5 动画,画图的好资料. HTML5 Canvas画图与动画学习59例
- HTML5 Canvas核心技术图形动画与游戏开发 ((美)David Geary) 中文PDF扫描版
<html5 canvas核心技术:图形.动画与游戏开发>是html5 canvas领域的标杆之作,也是迄今为止该领域内容最为全面和深入的著作之一,是公认的权威经典.amazon五星级超级 ...
- 学习HTML5 canvas遇到的问题
学习HTML5 canvas遇到的问题 1. 非零环绕原则(nonzZero rule) 非零环绕原则是canvas在进行填充的时候是否要进行填充的判断依据. 在判断填充的区域拉一条线出来,拉到图形的 ...
- HTML5 Canvas水波纹动画特效
HTML5的Canvas特性非常实用,我们不仅可以在Canvas画布上绘制各种图形,也可以制作绚丽的动画,比如这次介绍的水波纹动画特效.以前我们也分享过一款基于HTML5 WebGL的水波荡漾动画,让 ...
- 转载《学习HTML5 canvas遇到的问题》
学习HTML5 canvas遇到的问题 1. 非零环绕原则(nonzZero rule) 非零环绕原则是canvas在进行填充的时候是否要进行填充的判断依据. 在判断填充的区域拉一条线出来,拉到图形的 ...
- canvas制作简单动画
在画布元素<canvas>中,除了绘制图形.图像.文字外,还可以制作一些简单的动画,制作过程十分简单,主要分为两步操作: 1.自定义一个函数,用于图形的移动或其他动作. 2.使用setIn ...
- html5 canvas 实现简单的画图
今天早上看了一下 canvas 前端画图,数据可视化, 百度的 echart.js , d3等 js 库都已经提供了强大的绘制各种图形的 API. 下面记录一下 有关canvas 绘图的基本知识: ...
- HTML5 Canvas绘文本动画(使用CSS自定义字体)
一.HTML代码: <!DOCTYPE html> <html> <head> <title>Matrix Text - HTML5 Canvas De ...
随机推荐
- Python中eval函数的作用
eval eval函数就是实现list.dict.tuple与str之间的转化str函数把list,dict,tuple转为为字符串# 字符串转换成列表a = "[[1,2], [3,4], ...
- 《Exception团队》第二次作业:团队项目选题报告
一.项目基本介绍 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 Exception 作业学习目标 深入了解软件思想,强化编程技术 二.项目细则 ...
- 08--STL关联容器(set/multiset)
一:set/multiset的简介 set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列.元素插入过程是按排序规则插入,所以不能指定插入位置. set采用红黑树变体的数据结构实 ...
- 03--STL序列容器(Deque)
一:Deque双端队列<头尾操作> stack和queue是在Deque的基础上改进的,所以先介绍双端队列Deque deque是“double-ended queue”的缩写,和 ...
- 实现Map接口(hash原理)
闲来无事,就实现一个简单的map来练练手吧! HashMap的底层实现主要是基于数组和链表来实现的,HashMap中通过key的hashCode来计算hash值的,由这个hash值计算在数组中的位置, ...
- APACHE 安装
APACHE 安装 到官网下载apache软件 解压apache软件 安装APR相关优化模块 创建APACHE安装目录 安装apche,开始预编译(检测安装环境) 编译和安装 启动时报错及排错 修改 ...
- 移除文件(git rm)
git rm`命令会把文件从已跟踪列表(及暂存区)中移除,并且移除把文件从工作目录中移除,这样下一次你就不会在未跟踪文件列表中看到这些文件了. 如果你只是简单的把文件从工作目录移除,而没有使用git ...
- 关于Java的volatile
volatile的作用 1.防止指令重排序 首先要理解什么是指令重排序?指令重排序的利弊?后续举例说明 2.多线程访问共享资源时,缓解synchronized重量级锁带来的性能问题 但是volatil ...
- css3混合模式
https://juejin.im/entry/5b4802d15188251ac446d3a9
- mac配置变量失败导致ls命令都失效
1.在命令行中输入 export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin 这样可以保证命令行命令暂时可以使用.命令执行完之后先不要关闭终端 ...


