【HTML5】Canvas绘制基础
什么是 Canvas?
HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。
画布是一个矩形区域,您可以控制其每一像素。
canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
1,创建Canvas画布:
<canvas id="canvas"></canvas>
1,绘制直线

<canvas id="canvas" width="400" height="300" style="border:1px gray solid;margin:0 auto"></canvas>
<script>
window.onload=function(){
var canvas=document.getElementById("canvas");
var context=canvas.getContext("2d");
//使用context进行绘制
if(context){
context.moveTo(100,100);//起始位置
context.lineTo(200,200);//第二个点位置
context.lineTo(100,200);//第三个点位置(以上一个点位置为起点)
context.lineTo(100,100);
context.lineWidth=1;//定义线条宽度
context.strokeStyle="red";//定义颜色
context.stroke();//绘制操作
}else{
alert("当前浏览器不支持Canvas");
}
}
</script>
2,绘制颜色不同的线条 context.beginPath() context.closePath()

//-----红色线条
context.beginPath();
context.moveTo(100,100);
context.lineTo(200,200);
context.lineTo(100,200);
context.lineTo(100,100);
context.lineWidth=1;
context.strokeStyle="red";
context.stroke();
context.closePath();
//------黑色线条
context.beginPath();
context.moveTo(120,100);
context.lineTo(200,180);
context.strokeStyle="black";
context.stroke();
context.closePath();
3,绘制七巧板

<canvas id="canvas" width="500" height="500"></canvas>
<script type="text/javascript">
var tangram=[
{coordinate :[{x:0,y:0},{x:250,y:250},{x:0,y:500}],color:"#caff67"},
{coordinate :[{x:0,y:0},{x:500,y:0},{x:250,y:250}],color:"#67beef"},
{coordinate :[{x:0,y:500},{x:125,y:375},{x:250,y:500}],color:"#ef3d61"},
{coordinate :[{x:125,y:375},{x:250,y:500},{x:375,y:375},{x:250,y:250}],color:"#f9f51a"},
{coordinate :[{x:250,y:250},{x:375,y:375},{x:375,y:125}],color:"#a594e0"},
{coordinate :[{x:375,y:125},{x:375,y:375},{x:500,y:250},{x:500,y:0}],color:"#fa8e00"},
{coordinate :[{x:250,y:500},{x:500,y:500},{x:500,y:250}],color:"#f6ca29"},
];
window.onload=function(){
var canvas=document.getElementById("canvas");
var context=canvas.getContext("2d");
if(context){
for(var i=0;i<tangram.length;i++){
Draw(tangram[i],context);
}
}else{
echo("当前浏览器不支持Canvas");
}
}
function Draw(plate,context){
context.beginPath();
context.moveTo(plate.coordinate[0].x,plate.coordinate[0].y);
for(var i=1;i<plate.coordinate.length;i++){
context.lineTo(plate.coordinate[i].x,plate.coordinate[i].y);
}
context.fillStyle=plate.color;
context.fill();
}
</script>
4、绘制一个简单的矩形框

function Draw(context){
context.beginPath();
context.strokeStyle="red";
context.strokeRect(30,30,340,240);
context.closePath();
}
5,绘制弧和圆
使用方法: arc(X,Y,Radius,startAngle,endAngle,anticlockwise),意思是(圆心X坐标,圆心Y坐标,半径,开始角度(弧度),结束角度弧度,是否按照顺时针画);

function Draw(context){
context.beginPath();
context.arc(200,150,80,0,1.5*Math.PI,false);//false顺时针,true逆时针,默认是false
context.strokeStyle="green";
context.stroke();
context.closePath();
}
在stroke(),前closePath()的话将会封闭路径

【HTML5】Canvas绘制基础的更多相关文章
- html5 Canvas绘制图形入门详解
html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏览器(FireFox.Chrome. ...
- 学习笔记:HTML5 Canvas绘制简单图形
HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" ...
- 使用 HTML5 Canvas 绘制出惊艳的水滴效果
HTML5 在不久前正式成为推荐标准,标志着全新的 Web 时代已经来临.在众多 HTML5 特性中,Canvas 元素用于在网页上绘制图形,该元素标签强大之处在于可以直接在 HTML 上进行图形操作 ...
- 使用html5 canvas绘制图片
注意:本文属于<html5 Canvas绘制图形入门详解>系列文章中的一部分.如果你是html5初学者,仅仅阅读本文,可能无法较深入的理解canvas,甚至无法顺畅地通读本文.请点击上述链 ...
- 使用html5 canvas绘制圆形或弧线
注意:本文属于<html5 Canvas绘制图形入门详解>系列文章中的一部分.如果你是html5初学者,仅仅阅读本文,可能无法较深入的理解canvas,甚至无法顺畅地通读本文.请点击上述链 ...
- 解决html5 canvas 绘制字体、图片与图形模糊问题
html5 canvas 绘制字体.图片与图形模糊问题 发生情况 多出现在高dpi设备,这意味着每平方英寸有更多的像素,如手机,平板电脑.当然很多高端台式电脑也有高分辨率高dpi的显示器. canva ...
- 使用html5 Canvas绘制线条(直线、折线等)
使用html5 Canvas绘制直线所需的CanvasRenderingContext2D对象的主要属性和方法(有"()"者为方法)如下: 属性或方法 基本描述 strokeSty ...
- html5 canvas绘制环形进度条,环形渐变色仪表图
html5 canvas绘制环形进度条,环形渐变色仪表图 在绘制圆环前,我们需要知道canvas arc() 方 ...
- 怎样用JavaScript和HTML5 Canvas绘制图表
原文:https://code.tutsplus.com/zh-...原作:John Negoita翻译:Stypstive 在这篇教程中,我将展示用JavaScript和canvas作为手段,在饼状 ...
- HTML5 canvas 绘制精美的图形
HTML5 是一个新兴标准,它正在以越来越快的速度替代久经考验的 HTML4.HTML5 是一个 W3C “工作草案” — 意味着它仍然处于开发阶段 — 它包含丰富的元素和属性,它们都支持现行的 HT ...
随机推荐
- php获取MAC地址
/** *获取mac地址 **/ class GetMacAddr{ var $return_array = array(); // 返回带有MAC地址的字串数组 var $mac_addr; fun ...
- window.name跨域
window.name? 每一个页面都有一个自己的window,而window.name是window的名字. window.name跨域原理 window对象有个name属性,该属性有个特征:即在一 ...
- unicode和utf8
很多人,即使是有一些项目经验的人,都说过这句话.但是如果深入的理解什么是unicode之后就会知道,原来我们经常说的这句话“unicode字符是2个字节”这句话是有问题的. 要说清楚这个问题,首先就要 ...
- CSS3 3D发光切换按钮
在线演示 本地下载
- linux+udp+server+client
一.客户端 #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include ...
- CentOS 7 导入epel库
yum install epel-release 或者到百度云下载相应的 rpm 包进行安装 rpm -ivh epel-release-7-9.noarch.rpm
- POJ 3253 Fence Repair 贪心+优先队列
题意:农夫要将板割成n块,长度分别为L1,L2,...Ln.每次切断木板的花费为这块板的长度,问最小花费.21 分为 5 8 8三部分. 思路:思考将n部分进行n-1次两两合成最终合成L长度和题目 ...
- inline-block和同级的text-align问题
https://www.cnblogs.com/qjqcs/p/5551640.html margin:0 auto:是设置块标签在父级中居中对齐,是一种对齐方式.所以对于display:inline ...
- jquery02-jQuery效果=隐藏和显示+切换+淡入淡出+滑动+动画+回调+链
隐藏和显示 $(selector).hide(speed,callback); $(selector).show(speed,callback); 可选的 speed 参数规定隐藏/显示的速度, ...
- Spring初学之spring的事务管理xml
所有的java类都是用的上一篇文章:Spring初学之spring的事务管理 不同的是,这时xml配置事务,所以就要把java类中的那些关于spring的注解都删掉,然后在xml中配置,Applica ...