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. (原)C++中测试代码执行时间

    转载请注明出处(不过这个用法网上到处都是): http://www.cnblogs.com/darkknightzh/p/4987738.html LARGE_INTEGER nFreq, nBegi ...

  2. 【译】JavaScript 开发者年度调查报告

    截至目前有超过了 5000 人参与了(该次调查),准确的说是 5350 人.我迫不及待的想要和大家分享一下这次调查的细节.在分享之前我想要感谢参与调查的每一个人.这是 JavaScript 社区一个伟 ...

  3. Retrieving the COM class factory for component with CLSID XX failed due to the following error: 80070005 拒绝访问。

    环境及异常信息说明 环境说明: Win2008 R2 企业版 x64 .IIS 7.0 功能说明:服务端操作Excel,(上传Excel到服务器,并在服务器端读取Excel中的数据) 异常信息:Ret ...

  4. 在函数中处理html点击事件在标签中增加属性值来解决问题。

  5. javaweb jsp页面上传excel文件

    servlet: private static final long FILE_MAX_SIZE = 4 * 1024 * 1024; if (!ServletFileUpload.isMultipa ...

  6. wordpress教程之the_author_meta()显示用户的信息

    描述 模板标签函数the_author_meta可以显示用户数据.如果该函数在文章主循环(Loop)中,则不必指定作者的ID值,标签所显示的就是当前文章作者的内容.如果在主循环(Loop)外,则需要指 ...

  7. Keil UV4 BUG(带字库液晶不能显示“数、正、过”问题的请看)

    Keil UV3一直存在汉字显示(0xFD)的bug,以前在用到带字库的12864液晶的时候,“数”字总是不能正常显示,后来有网友告诉我这是keil的bug,解决掉了.后来keil升级了,我也换了新版 ...

  8. 华为IC设计人员的薪酬(5年经验28万),以及麒麟是如何脱颖而出的~

    垂直整合助力麒麟腾飞 由于ARM技术路线大幅降低了技术门槛和研发的资金和时间成本,导致ARM阵营参与者众多,加上大家都是购买ARM的CPU核与GPU核,造成产品高度同质化,市场竞争异常激烈——在价格上 ...

  9. Plus One 解答

    Question Given a non-negative number represented as an array of digits, plus one to the number. The ...

  10. Oleg Sych - » Pros and Cons of T4 in Visual Studio 2008

    Oleg Sych - » Pros and Cons of T4 in Visual Studio 2008 Pros and Cons of T4 in Visual Studio 2008 Po ...