1使用canvas绘制一个矩形

<canvas id="canvas" width="640" height="360"></canvas>

  

<script>
// 获取context对象
var canvas = document.getElementById('canvas');
if(canvas.getContext) {
var context = canvas.getContext('2d');
// 设置颜色
context.fillStyle = 'rgb(255,0,0)';
// 从坐标(20,30)开始,画一个64x36大小的矩形
context.fillRect(20,30,64,36);
}
</script>

  

2划线

<script>
// 获取htmlcanvas标签
var c=document.getElementById('myCanvas');
// 返回一个用来绘制环境类型的环境
var ctx = c.getContext('2d');
//线宽
ctx.lineWidth = 10;
//设置画笔颜色为红色
ctx.strokeStyle = 'red';
//创建一个新的路径
ctx.beginPath();
//画笔光标位置移动到10,10
ctx.moveTo(10,10);
//从开始坐标移动到150,10处
ctx.lineTo(150,50);
//开始绘制好定义的路线
ctx.stroke();
</script>

  

<canvas id="myCanvas" width="200" height="100">
你的浏览器不支持HTML5
</canvas>

  

3、画矩形

<script>
// 获取htmlcanvas标签
var c=document.getElementById('myCanvas');
// 返回一个用来绘制环境类型的环境
var ctx = c.getContext('2d');
//线宽
ctx.lineWidth = 10;
//设置画笔颜色为红色
ctx.strokeStyle = 'red';
//创建一个新的路径
ctx.beginPath();
//绘制矩形的起点坐标、终点坐标、长、宽
ctx.strokeRect(10,10,70,40);
ctx.stroke();
</script>

  

4实心矩形

<script>
// 获取htmlcanvas标签
var c=document.getElementById('myCanvas');
// 返回一个用来绘制环境类型的环境
var ctx = c.getContext('2d');
//线宽
ctx.lineWidth = 10;
//设置画笔颜色为红色
ctx.strokeStyle = 'red';
//创建一个新的路径
ctx.beginPath();
//绘制矩形的起点坐标、终点坐标、长、宽
ctx.fillRect(10,10,70,40);
ctx.stroke();
</script>

  

5画圆

<script>
// 获取htmlcanvas标签
var c=document.getElementById('myCanvas');
// 返回一个用来绘制环境类型的环境
var ctx = c.getContext('2d');
//线宽
ctx.lineWidth = 10;
//设置画笔颜色为红色
ctx.strokeStyle = 'red';
//创建一个新的路径
ctx.beginPath();
//绘制矩形的起点坐标、终点坐标、长、宽
ctx.arc(20,20,10,0,360*Math.PI/180,true);
ctx.stroke();
</script>

  

6矩形的半圆

<script>
// 获取htmlcanvas标签
var c=document.getElementById('myCanvas');
// 返回一个用来绘制环境类型的环境
var ctx = c.getContext('2d');
//线宽
ctx.lineWidth = 1;
//设置画笔颜色为红色
ctx.strokeStyle = 'red';
//创建一个新的路径
ctx.beginPath();
//绘制矩形的起点坐标、终点坐标、长、宽
ctx.moveTo(20,20);
ctx.lineTo(70,20);
ctx.arcTo(120,20,120,70,50);
ctx.lineTo(120,120);
ctx.stroke();
</script>

  

7圆形矩形

<script>
// 获取htmlcanvas标签
var c=document.getElementById('myCanvas');
// 返回一个用来绘制环境类型的环境
var ctx = c.getContext('2d');
//线宽
ctx.lineWidth = 1;
//设置画笔颜色为红色
ctx.strokeStyle = 'red';
//创建一个新的路径
ctx.beginPath();
//绘制矩形的起点坐标、终点坐标、长、宽
ctx.moveTo(40,20);
ctx.lineTo(100,20);
ctx.arcTo(120,20,120,40,20);
ctx.lineTo(120,70);
ctx.arcTo(120,90,100,90,20);
ctx.lineTo(40,90);
ctx.arcTo(20,90,20,70,20);
ctx.lineTo(20,40);
ctx.arcTo(20,20,40,20,20);
ctx.stroke(); </script>

  

8、擦除canvas画板

<script>
// 获取htmlcanvas标签
var c=document.getElementById('myCanvas');
// 返回一个用来绘制环境类型的环境
var ctx = c.getContext('2d');
//线宽
ctx.lineWidth = 1;
//设置画笔颜色为红色
ctx.strokeStyle = 'red';
//创建一个新的路径
ctx.beginPath();
//绘制矩形的起点坐标、终点坐标、长、宽
ctx.fillRect(20,20,40,80);
ctx.clearRect(30,30,20,30);
ctx.stroke();
</script>

  

9.绘制复杂图形

<script>
// 获取htmlcanvas标签
var c=document.getElementById('myCanvas');
// 返回一个用来绘制环境类型的环境
var ctx = c.getContext('2d');
//线宽
ctx.lineWidth = 1;
//设置画笔颜色为红色
ctx.strokeStyle = 'red';
//创建一个新的路径
ctx.beginPath();
//绘制矩形的起点坐标、终点坐标、长、宽
ctx.moveTo(60,50);
ctx.quadraticCurveTo(40,20,120,20);
ctx.stroke();
</script>

  

10.clip()

<script>
// 获取htmlcanvas标签
var c=document.getElementById('myCanvas');
// 返回一个用来绘制环境类型的环境
var ctx = c.getContext('2d');
//线宽
ctx.lineWidth = 1;
//设置画笔颜色为红色
ctx.strokeStyle = 'red';
//创建一个新的路径
ctx.beginPath(); //绘制矩形的起点坐标、终点坐标、长、宽
ctx.arc(60,50,20,0,2*Math.PI,true);
ctx.clip();
ctx.beginPath();
ctx.fillStyle = 'lightblue';
ctx.fillRect(60,50,10,10);
ctx.stroke();
</script>

  

11文字

<script>
// 获取htmlcanvas标签
var c=document.getElementById('myCanvas');
// 返回一个用来绘制环境类型的环境
var ctx = c.getContext('2d');
//线宽
ctx.lineWidth = 1;
//设置画笔颜色为红色
ctx.strokeStyle = 'red';
//创建一个新的路径
ctx.beginPath();
//绘制矩形的起点坐标、终点坐标、长、宽
ctx.moveTo(40,20);
// ctx.fillText('林耀辉',130,130);
ctx.textBaseline = 'ideographic';
ctx.font = 'bold italic 30px Arial';
ctx.moveTo(0,110);
ctx.lineTo(250,110);
ctx.strokeText('林耀辉',130,130);
ctx.stroke(); </script>

  

12、图片

13、放大缩小

<script>
window.onload = function () { // 获取htmlcanvas标签
var c=document.getElementById('myCanvas');
// 返回一个用来绘制环境类型的环境
var ctx = c.getContext('2d');
//
ctx.beginPath();
ctx.strokeStyle = '#000000';
ctx.strokeRect(20,20,100,100); // 放大三倍
// ctx.scale(3,3);
// ctx.beginPath();
// ctx.strokeStyle = '#cccccc';
// ctx.strokeRect(20,20,100,100); // 缩小0.5倍
// ctx.scale(0.5,0.5);
// ctx.beginPath();
// ctx.strokeStyle = '#000000';
// ctx.strokeRect(20,20,100,100); ctx.scale(-1,-1);
ctx.beginPath();
ctx.strokeStyle = '#000000';
ctx.strokeRect(20,20,100,100);
}; </script>

  

canvas认识的更多相关文章

  1. html5 canvas常用api总结(三)--图像变换API

    canvas的图像变换api,可以帮助我们更加方便的绘画出一些酷炫的效果,也可以用来制作动画.接下来将总结一下canvas的变换方法,文末有一个例子来更加深刻的了解和利用这几个api. 1.画布旋转a ...

  2. 【探索】利用 canvas 实现数据压缩

    前言 HTTP 支持 GZip 压缩,可节省不少传输资源.但遗憾的是,只有下载才有,上传并不支持.如果上传也能压缩,那就完美了.特别适合大量文本提交的场合,比如博客园,就是很好的例子. 虽然标准不支持 ...

  3. 简单入门canvas - 通过刮奖效果来学习

    一 .前言 一直在做PC端的前端开发,从互联网到行业软件.最近发现移动端已经成为前端必备技能了,真是不能停止学习.HTML5新增的一些东西,canvas是用的比较多也比较复杂的一个,简单的入门了一下, ...

  4. 获取Canvas当前坐标系矩阵

    前言 在我的另一篇博文 Canvas坐标系转换 中,我们知道了所有的平移缩放旋转操作都会影响到画布坐标系.那在我们对画布进行了一系列操作之后,怎么再知道当前矩阵数据状态呢. 具体代码 首先请看下面的一 ...

  5. Canvas坐标系转换

    默认坐标系与当前坐标系 canvas中的坐标是从左上角开始的,x轴沿着水平方向(按像素)向右延伸,y轴沿垂直方向向下延伸.左上角坐标为x=0,y=0的点称作原点.在默认坐标系中,每一个点的坐标都是直接 ...

  6. Canvas绘图之平移translate、旋转rotate、缩放scale

    画布操作介绍 画布绘图的环境通过translate(),scale(),rotate(), setTransform()和transform()来改变,它们会对画布的变换矩阵产生影响. 函数 方法 描 ...

  7. 用html5的canvas和JavaScript创建一个绘图程序

    本文将引导你使用canvas和JavaScript创建一个简单的绘图程序. 创建canvas元素 首先准备容器Canvas元素,接下来所有的事情都会在JavaScript里面. <canvas ...

  8. html5标签canvas函数drawImage使用方法

    html5中标签canvas,函数drawImage(): 使用drawImage()方法绘制图像.绘图环境提供了该方法的三个不同版本.参数传递三种形式: drawImage(image,x,y):在 ...

  9. 使用 JavaScript 和 canvas 做精确的像素碰撞检测

    原文地址:Pixel accurate collision detection with Javascript and Canvas 译者:nzbin 我正在开发一个需要再次使用碰撞检测的游戏.我通常 ...

  10. H5项目开发分享——用Canvas合成文字

    以前曾用Canvas合成.裁剪.图片等<用H5中的Canvas等技术制作海报>.这次用Canvas来画文字. 下图中"老王考到驾照后"这几个字是画在Canvas上的,与 ...

随机推荐

  1. php对数组中指定键值排序

    function array_sort($arr,$keys,$type='asc'){ $keysvalue = $new_array = array(); foreach ($arr as $k= ...

  2. JavaScript对象(一)——Function对象

    写在最前面: 对象只是带有属性和方法的特殊数据类型(js的7种数据类型:字符串,数字,布尔,数组,对象,null,undefined). JavaScript是面向对象的语言,但是JavaScript ...

  3. 指令中 controller && controllerAs

    1, controller 他会暴露一个API,利用这个API可以在多个指令之间通过依赖注入进行通信. controller($scope, $element, $attrs, $tranclude) ...

  4. css3 页面退出和进入的动画

    @-webkit-keyframes slideIn { from { -webkit-transform: translate3d(100%,0,0); transform: translate3d ...

  5. HTML实体符号

    http://www.php100.com/html/program/html/2013/0903/1052.html

  6. BZOJ NOI十连测 第二测 T2

    思路:20%可以搜索.. #include<algorithm> #include<cstdio> #include<cmath> #include<cstr ...

  7. UFI命令格式里SCSI指令

    有三种字长命令:6位.10位.12位,一般Windows下用12位. 在UFI 命令格式里SCSI指令用到如下: 指令代码 指令名称 说明 04h Format Unit 格式化存储单元 12h In ...

  8. Delphi的文件操作(定义,关联,打开,读写,关闭)

    参考自:http://www.cnblogs.com/railgunman/articles/1800318.html Delphi 中默认有input 和 output 两个文件变量,使用可以不用定 ...

  9. hdu 2079 选课时间_母函数

    题意:需要学够n学分,有k个情况(x学分,y个相同学分的课) 解法:套母函数模板 #include <iostream> #include<cstdio> using name ...

  10. UML图总结

    UML叙述 UML文档仅仅是设计与开发人员采用UML语言进行系统分析与设计的结果,并没有给出如何进行开发和采用何种开发流程,同样也不指导如何进行面向对象设计. UML文档描述了面向对象分析与设计的结果 ...