HTML5 Canvas入门

  HTML5的canvas(画布)元素使用JavaScript在网页上绘制图像。下面以一个简单例子及其效果图(图1)开始:

<!DOCTYPE HTML>
<html><head><style type="text/css"> canvas{border:dashed 2px #CCC}</style><script type="text/javascript">/* canvas元素本身没有绘图能力。所有绘制工作必须在JavaScript中完成 */function drawRect(){var c=document.getElementById("myCanvas");/* 创建context对象(内建的HTML5对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法) */var cxt=c.getContext("2d");/* 绘制一个黄色的实心矩形,并指定了位置和尺寸 */cxt.fillStyle="yellow";cxt.fillRect(40,40,220,120);/* 替换以上两句,变成空心矩形 *//* cxt.strokeStyle = 'yellow'; *//* cxt.strokeRect(40,40,220,120); *//* 替换以上两句,变成填充色为红-绿-蓝渐变的矩形 */
/*          var gnt1 = cxt.createLinearGradient(40,40,260,40);gnt1.addColorStop(0,'red');gnt1.addColorStop(0.5,'green');gnt1.addColorStop(1,'blue');cxt.fillStyle = gnt1;cxt.fillRect(40,40,220,120); */}</script></head><body onload="drawRect();"><!-- 画布是一矩形区域(图中虚线框),这里设置id、宽度和高度 --><canvas id="myCanvas" width="300" height="200"></canvas></body>
</html>

  

  图2折线的实现(仅需要替换drawRect()中的代码):

var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
/* moveTo():把路径移动到画布中的指定点,不创建线条 */
cxt.moveTo(10,10);
/* lineTo():添加一个新点,然后在画布中创建从该点到最后指定点的线条 */
cxt.lineTo(150,50);
cxt.lineTo(10,50);
/* stroke():绘制已定义的路径 */
cxt.stroke();

  图3的实现(仅需要替换drawRect()中的代码):

var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="#CCCCCC";
/* beginPath():起始一条路径,或重置当前路径 */
cxt.beginPath();
/* arc()的参数依次是:圆心x和y坐标、半径、起始角和结束角(弧度)、是否逆时针 */
cxt.arc(150,100,50,0,Math.PI*1.5,false);
/* closePath():创建从当前点回到起始点的路径 */
cxt.closePath();
/* fill():填充当前绘图(路径) */
cxt.fill();

 

 

  参考资料:

  http://www.w3school.com.cn/

  http://www.w3school.com.cn/tags/html_ref_canvas.asp

  http://www.cnblogs.com/picaso/archive/2012/11/26/2789077.html

 

 

不断学习中。。。

转载于:https://www.cnblogs.com/hanerfan/p/5024787.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

泄漏:Oracle WebLogic Server 12g

JavaOne已经比我们落后了将近一个星期&#xff0c;我仍在撰写有关它的详细博客文章 。 我真的很惊讶的事实是&#xff0c;我没有看到任何提及我最喜欢的应用程序服务器更新的事实。 是的&#xff0c;我喜欢WebLogic产品。 从一开始。 自从收购BEA以来&#xff0c;甲骨文一直对我…

画家问题

【题目描述】 有一个正方形的墙&#xff0c;由N*N个正方形的砖组成&#xff0c;其中一些砖是白色的&#xff0c;另外一些砖是黄色的。Bob是个画家&#xff0c;想把全部的砖都涂成黄色。但他的画笔不好使。当他用画笔涂画第(i,j)个位置的砖时&#xff0c;位置(i-1,j)、(i1,j)、(…

8-IO总结

3、 4、 5、 转载于:https://www.cnblogs.com/fubaizhaizhuren/p/5026207.html

python 发邮件_python发邮件

smtplibPython提供smtplib模块&#xff0c;该模块定义了一个SMTP客户端会话对象&#xff0c;可用于使用SMTP或ESMTP侦听器守护程序向任何互联网机器发送邮件。这是一个简单的语法&#xff0c;用来创建一个SMTP对象&#xff0c;稍后将演示如何用它来发送电子邮件 import smtplib…

Java SE 7、8、9 –推进Java

今天&#xff08;注&#xff1a;2011年10月4日&#xff09;是主题演讲日。 JavaOne Keynote将于今早从上午8:30到10:30进行&#xff0c;而我的新闻通行证又一次让我很早就开始了。 因此&#xff0c;我有时间在所有关键球员准备就绪并可能感到紧张的同时为其拍摄一些非常个性化的…

python数据挖掘与机器学习实战_Python数据挖掘与机器学习技术入门实战(1)

什么是数据挖掘?数据挖掘指的是对现有的一些数据进行相应的处理和分析&#xff0c;最终得到数据与数据之间深层次关系的一种技术。例如在对超市货品进行摆放时&#xff0c;牛奶到底是和面包摆放在一起销量更高&#xff0c;还是和其他商品摆在一起销量更高。作者&#xff1a;韦…

(转)求单链表是否有环,环入口和环长

转自&#xff1a;http://www.cnblogs.com/youxin/p/3303172.html 1.链表中是否有环的判断可以设置两个指针(fast,slow)&#xff0c;初始值均指向头&#xff0c;slow每次向前一步&#xff0c;fast每次向前两步&#xff1b;如果链表中有环&#xff0c;则fast先进入环中&#xff0…

NYOJ 202 红黑树

红黑树 时间限制&#xff1a;3000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;3描述 什么是红黑树呢&#xff1f;顾名思义&#xff0c;跟枣树类似&#xff0c;红黑树是一种叶子是黑色果子是红色的树。。。 当然&#xff0c;这个是我说的。。。 《算法导论》上可不是这么…

JBoss模块示例–模块化Web应用程序

最近&#xff0c;我读了为什么没有标准来开发真正的模块化Web应用程序&#xff1f; 由Patroklos Papapetrou撰写&#xff08; 在Java Code Geeks中也有介绍 &#xff09;。 受本文的启发&#xff0c;我决定检查实际使用的JBoss模块 。 这篇文章逐步描述了我的实验。 我首先想到…

multiprocessing.manager管理的对象需要加锁吗_Go: 内存管理和分配

本文基于Go1.13当不再使用内存时&#xff0c;标准库会自动执行Go的内存管理即从分配到回收。尽管开发者不需要处理它&#xff0c;但是Go的底层管理进行了很好的优化并且充满了有趣的概念。堆上的分配内存管理被设计可以在并发环境快速执行并且集成了gc。让我们从一个例子开始&a…

OpenShift Express:部署Java EE应用程序(支持AS7)

在过去的几年中&#xff0c;我越来越听到有关“云”服务的信息。 最初&#xff0c;我并不是很想尝试一下。 但是几个月后&#xff08;一年&#xff1f;&#xff09;&#xff0c;我决定看看这是怎么回事。 我从事Java EE开发已经超过7年了&#xff0c;所以我决定看看将Java EE应…

怎么解决xp系统不能安装NET Framework4.0?

.net 4.0安装不上解决方法&#xff1a; 引用 9 楼 MoreQuestion 的回复: 全部都不行&#xff01;就是用360软件管家安装那个就可以了。用了楼主的方法&#xff0c;果然可行啊 1.先安装wic。 2.用360安装.net40 本帖最后由 不懂 于 2014-6-6 00:56 编辑Windows Server 2003 如何…

HDU 5794:A Simple Chess(Lucas + DP)

题目链接&#xff1a;http://acm.split.hdu.edu.cn/showproblem.php?pid5794 题意&#xff1a;让一个棋子从&#xff08;1,1&#xff09;走到&#xff08;n&#xff0c;m&#xff09;&#xff0c;要求像马一样走日字型并只能往右下角走。里面还有r个障碍点不能经过或者到达&am…

无限漫游

一、FAT AP架构下&#xff0c;AP设备不做认证时&#xff1a; (1) AP1&#xff0c;AP2正常工作&#xff0c;发送Beacon帧&#xff0c;向STA通告支持的无线服务&#xff1b; (2) STA搜索到AP1的信号&#xff0c;向AP1发Probe Request,请求获取AP1所提供的无线服务&#xff1b;AP…

uni-app内置地图轨迹_MIUI11 新增亲情守护,支持安全围栏、运动轨迹功能

点击右上角关注我们&#xff0c;每天给您带来最新最潮的科技资讯&#xff0c;让您足不出户也知道科技圈大事&#xff01;日前&#xff0c;小米 MIUI 体验总负责人 MIUI小凡 在微博上为大家预告了 MIUI11 的新特性「亲情守护」&#xff0c;并表示「在亲情守护中&#xff0c;我们…

:before与:after伪类的应用

1.小三角样式 .tip{ position:relative; display:inline-block; width:100px; margin:100px; padding:30px 20px; color:#fff; border:1px solid #666; border-radius:5px; background-color:rgba(0,153,51,1);}.tip:before{ content:; posit…

phpcms 下载模型列表页直接点击下载

下载模型设置本地下载 列表页模板直接调用 <article class"prjDown"><p class"prjDownTitle">方案下载</p><nav class"prjDownNav"><ul>{pc:content action"lists" catid"$catid" num"3…

(转) 中断处理程序中断服务例程

关于中断处理程序和中断服务例程ISR的区别及联系&#xff0c;之前一直搞混&#xff0c;今天抽时间将两者关系弄弄清楚。ok,下面进入主题。首先中断处理程序(Interrupt Handler)和中断服务例程ISR(Inerrupt Service Routine)是两个不同的概念.简单来说就是&#xff0c;一条中断线…

使用SQL:2003 MERGE语句的奥术魔术

时不时地&#xff0c;由于以下任何原因&#xff0c;我们不得不将INSERT与UPDATE区分开来感到尴尬&#xff1a; 我们必须至少发表两个声明 我们必须考虑性能 我们必须考虑比赛条件 我们必须在[UPDATE; 如果UPDATE_COUNT 0 THEN INSERT]和[INSERT; 如果例外然后更新] 我们必…

Swing 学习小记

初学Swing一路问题&#xff0c;一路学习 问题一&#xff1a;JPanel中动态组件添加&#xff0c;刷新问题&#xff1f; 错误一&#xff1a;使用repaint()方法&#xff0c;以为可以刷新&#xff0c;可行不通。 错误继续发生&#xff1a;还是使用repaint()方法&#xff0c;与之前不…