什么是 Canvas?

HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。

画布是一个矩形区域,您可以控制其每一像素。

canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

1,创建Canvas画布:

<canvas id="canvas"></canvas>

2,javascript获取Canvas对象
    var canvas=document.getElementById("canvas"); 
3,获取具体绘图的上下文对象
    var context=canvas.getContext('2d');//使用context做具体的绘图工作
一、canvas的常用属性、方法
     canvas.width     //设置canvas画布的宽度
     canvas.height    //设置canvas画布的高度
     canvas.getContext('2d')   //获取做具体绘图工作的上下文对象
 
二、绘制的常用属性和方法
     lineWidth       //设置线条宽度

     strokeStyle    //设置线条样式
     fillStyle       //设置一个封闭图形的填充颜色
     moveTo(x,y)    //定义线条的开始位置
     lineTo(x,y)    //定义线条的另一端位置
     beginPath()、closePath()   //定义路径的开始和路径的封闭    
     rect(x,y,width,height)      //定义一个矩形
     
     stroke()      //绘制前面定义的图形
     strokeRect(x,y,width,height)     //绘制矩形
     fill()        //对封闭图形做具体的填充
     fillRect(x,y,width,height)       //填充矩形
     
     

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绘制基础的更多相关文章

  1. html5 Canvas绘制图形入门详解

    html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏览器(FireFox.Chrome. ...

  2. 学习笔记:HTML5 Canvas绘制简单图形

    HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" ...

  3. 使用 HTML5 Canvas 绘制出惊艳的水滴效果

    HTML5 在不久前正式成为推荐标准,标志着全新的 Web 时代已经来临.在众多 HTML5 特性中,Canvas 元素用于在网页上绘制图形,该元素标签强大之处在于可以直接在 HTML 上进行图形操作 ...

  4. 使用html5 canvas绘制图片

    注意:本文属于<html5 Canvas绘制图形入门详解>系列文章中的一部分.如果你是html5初学者,仅仅阅读本文,可能无法较深入的理解canvas,甚至无法顺畅地通读本文.请点击上述链 ...

  5. 使用html5 canvas绘制圆形或弧线

    注意:本文属于<html5 Canvas绘制图形入门详解>系列文章中的一部分.如果你是html5初学者,仅仅阅读本文,可能无法较深入的理解canvas,甚至无法顺畅地通读本文.请点击上述链 ...

  6. 解决html5 canvas 绘制字体、图片与图形模糊问题

    html5 canvas 绘制字体.图片与图形模糊问题 发生情况 多出现在高dpi设备,这意味着每平方英寸有更多的像素,如手机,平板电脑.当然很多高端台式电脑也有高分辨率高dpi的显示器. canva ...

  7. 使用html5 Canvas绘制线条(直线、折线等)

    使用html5 Canvas绘制直线所需的CanvasRenderingContext2D对象的主要属性和方法(有"()"者为方法)如下: 属性或方法 基本描述 strokeSty ...

  8. html5 canvas绘制环形进度条,环形渐变色仪表图

    html5 canvas绘制环形进度条,环形渐变色仪表图                                             在绘制圆环前,我们需要知道canvas arc() 方 ...

  9. 怎样用JavaScript和HTML5 Canvas绘制图表

    原文:https://code.tutsplus.com/zh-...原作:John Negoita翻译:Stypstive 在这篇教程中,我将展示用JavaScript和canvas作为手段,在饼状 ...

  10. HTML5 canvas 绘制精美的图形

    HTML5 是一个新兴标准,它正在以越来越快的速度替代久经考验的 HTML4.HTML5 是一个 W3C “工作草案” — 意味着它仍然处于开发阶段 — 它包含丰富的元素和属性,它们都支持现行的 HT ...

随机推荐

  1. $Android中日期和时间选择器的实现

    创建日期或时间选择窗口需要弹出Dialog的时候,Activity类的showDialog方法已经弃用了,而推荐使用的是DialogFragment,本文总结一下其具体用法. (一)日期选择器 1.创 ...

  2. CentOS7在VMWare12中安装后不能上网解决办法

    首先要保证你的VMWare Workstation12 在安装号CentOS7后没改动什么关于网络相关的. 1.我的电脑一开始用的是VMWare WorkStations10,发现VMnet8根本不通 ...

  3. 015_[小插曲]看黄老师《炼数成金Hadoop应用开发实战案例》笔记

    1.大数据金字塔结构 Data Source-->Data Warehouses/Data Marts-->data exploration-->Data Mining-->D ...

  4. 键盘没有Home键和End键的完美解决办法

    最近新入手一个笔记本,发现键盘没有Home/End,这两个键虽然不是必用,但也是用顺手了,特别是选择一行,到行首,行尾的时候甚是方便 作为一枚程序员,怎么能够妥协? 于是开始研究 方案一 通过观察笔记 ...

  5. 每天一个linux命令(6/18):lsof命令

    lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以,lsof的功 ...

  6. 建议41:使用argparse处理命令行参数

    # -*- coding:utf-8 -*- ''' 以现阶段最好用的参数处理标准库是argparse ''' import argparse parser = argparse.ArgumentPa ...

  7. 网络:W5500抓包TCP segment of a reassembled PDU

    1.问题描述 W5500 http测试,用wireshark抓包,发现出现很多TCP segment of a reassembled PD. 2. 问题分析 TCP segment of a rea ...

  8. MySQL运维问题集锦

    1.莫名的慢查询问题.解决思路:http://hidba.org/?spm=5176.153233.793262.6.d75LDx&p=1119

  9. unbunto关闭触摸屏

    sudo rmmod psmouse 这个是禁用的 sudo modprobe psmouse 这个是启用的

  10. Whitewidow:SQL 漏洞自动扫描工具

    Whitewidow 是一个开源的 SQL 漏洞自动扫描器,可用通过文件列表运行,或者从 Google 爬取并发现有潜在漏洞的网站. 这个工具支持自动格式化文件.随机用户代理.IP 地址.服务器信息. ...