<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<style type="text/css">
#MyCanvas {
border: 1px solid #f60;
}
</style>
<body>
<!--创建一个canvas标签并设置大小-->
<canvas id="MyCanvas" height="600" width="500"></canvas>
</body>
<script type="text/javascript">
//创建图像
var img = new Image();
img.src = 'img/0.png'; window.onload = function() {
var MyCanvas = document.getElementById('MyCanvas');

       //getContext() 方法返回一个用于在画布上绘图的环境,2d为二维绘图
var ctx = MyCanvas.getContext('2d'); //开始绘制
ctx.beginPath();
//设置填充图像,定位点X Y,宽高
ctx.rect(50, 50, 100, 100);
//设置样式
ctx.fillStyle = "red";
ctx.fill(); //图像阴影:1.阴影颜色2.X Y 为阴影方向3.模糊程度
ctx.shadowColor = "#FF6600";
ctx.shadowOffsetX = 10;
ctx.shadowOffsetY = 10;
ctx.shadowBlur = 5; //设置边框
ctx.strokeStyle = 'lightblue';
ctx.stroke(); //开始一条路径,或重置当前路径
ctx.beginPath(); //图像位置移动
ctx.moveTo(500, 150); //绘制路径
ctx.lineTo(300, 100);
ctx.lineTo(300, 200);
ctx.lineTo(300, 200);
ctx.lineTo(300, 200);
ctx.fillStyle = 'lightcoral';
ctx.fill(); ctx.beginPath();
ctx.moveTo(200, 50);
ctx.lineTo(300, 100);
ctx.lineTo(300, 200);
ctx.lineTo(300, 200);
ctx.lineTo(300, 200);
ctx.fillStyle = 'lightcoral';
ctx.fill(); ctx.beginPath();
ctx.moveTo(400, 50);
ctx.lineTo(300, 100);
ctx.lineTo(300, 200);
ctx.lineTo(300, 200);
ctx.lineTo(300, 200);
ctx.fillStyle = 'lightgreen';
ctx.fill(); ctx.beginPath();
ctx.moveTo(100, 250);
ctx.lineTo(50, 300);
ctx.lineTo(150, 300);
//克隆一条边框
ctx.closePath(); //边框大小
ctx.lineWidth = 10;
ctx.stroke();
ctx.strokeStyle = 'lightskyblue'; ctx.beginPath(); //中心点X Y,半径r,起始弧度,结束弧度,true/false为半圆方向
//去掉'2*'为半圆
ctx.arc(250, 250, 50, 0, 2 * Math.PI);
ctx.fill();; //放置文字
ctx.beginPath();
ctx.font = '30px 微软雅黑';
ctx.fillText("Hello Canvsas", 50, 350); //文字描边
ctx.beginPath();
ctx.lineWidth = 3;
ctx.strokeText("Hello Canvsas", 50, 350); //放置图片
ctx.beginPath();
ctx.drawImage(img, 50, 400, 150, 150);
}
</script>
</html>

最新文章

  1. ORA-28001: the password has expired (DBD ERROR: OCISessionBegin) EM无法登录
  2. Senparc.Weixin.MP SDK 微信公众平台开发教程(四):Hello World
  3. POJ 2676
  4. MVC缓存02,使用数据层缓存,添加或修改时让缓存失效
  5. Android实战--电话拨号器
  6. bzoj 1856: [Scoi2010]字符串
  7. BufferedInputStream/BufferedOutputStream复制文件
  8. WIN7实用的运行命令
  9. 【转载】Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载六)Linux的网络配置
  10. 一步步学习ASP.NET MVC3 (13)——HTML辅助方法
  11. UESTC-888-Absurdistan Roads(kruskal+floyd)
  12. 外网訪问内网应用实现之无公网IP、多port、固定port、UDP等应用的实现方法
  13. OpenStack路: OpenStack建筑设计指南 - 概要(摘录和翻译)
  14. 201521123024 java 第十周学习总结
  15. Google Guava
  16. file和file文件流
  17. Tomcat如何实现资源安全管理
  18. python中__init__和__new__的区别
  19. [Swift]LeetCode396. 旋转函数 | Rotate Function
  20. Oracle 11g 导出数据报 “ORA-01455: 转换列溢出整数数据类型”的问题

热门文章

  1. JavaScript学习系列博客_19_JavaScript中方法(method)
  2. 计算机网络-应用层(4)DNS协议
  3. Solving the Distal Reward Problem through Linkage of STDP and Dopamine Signaling
  4. Mysql锁【转】
  5. iNeuOS工业互联平台,WEB组态(iNeuView)集成实时预警和报警柱状图
  6. Java二进制和位运算,这一万字准能喂饱你
  7. 消息型中间件之RabbitMQ集群
  8. Java面试题(Kafka篇+zookeeper 篇)
  9. Python测试函数运行时间
  10. 浅谈python垃圾回收机制