canvas学习笔记一

为了研究pixi库,就顺带从头到位学习下canvas吧

判断支持力度

var webgl = (function() {
    try {
        var canvas = document.createElement(‘canvas‘);
        return !!window.WebGLRenderingContext && (canvas.getContext(‘webgl‘) || canvas.getContext(‘experimental-webgl‘));
    } catch (e) {
        return false;
    }
})();

getContext方法指定参数2d,表示该canvas对象用于生成2D图案(即平面图案)。如果参数是3d,就表示用于生成3D图像(即立体图案),这部分实际上单独叫做WebGL API

绘制路径

  • beginPath方法表示开始绘制路径
  • moveTo(x, y)方法设置线段的起点
  • lineTo(x, y)方法设置线段的终点
  • stroke方法用来给透明的线段着色
    //////////
    //绘制路径 //
    //////////
    context.beginPath()
    context.moveTo(20, 20)
    context.lineTo(30, 30)
    context.moveTo(100, 150)
    context.lineTo(150, 200)
    context.lineWidth = 2
    context.strokeStyle = "red"
    context.stroke()

绘制矩形

l  fillRect(x, y, width, height)方法用来绘制矩形,它的四个参数分别为矩形左上角顶点的x坐标、y坐标,以及矩形的宽和高。fillStyle属性用来设置矩形的填充色

l  strokeRect方法与fillRect类似,用来绘制空心矩形

l  clearRect方法用来清除某个矩形区域的内容

    //////////
    //绘制路径 //
    //////////
    context.beginPath()
    context.moveTo(20, 20)
    context.lineTo(30, 30)
    context.moveTo(100, 150)
    context.lineTo(150, 200)
    context.lineWidth = 2
    context.strokeStyle = "red"
    context.stroke()

  

绘制文本

fillText(string, x, y) 用来绘制文本,它的三个参数分别为文本内容、起点的x坐标、y坐标。使用之前,需用font设置字体、大小、样式(写法类似与CSS的font属性)。与此类似的还有strokeText方法,用来添加空心字

fillText方法不支持文本断行,即所有文本出现在一行内。所以,如果要生成多行文本,只有调用多次fillText方法。

    //////////
    //绘制路径 //
    //////////
    context.beginPath()
    context.moveTo(20, 20)
    context.lineTo(30, 30)
    context.moveTo(100, 150)
    context.lineTo(150, 200)
    context.lineWidth = 2
    context.strokeStyle = "red"
    context.stroke()

绘制圆形和扇形

arc方法用来绘制扇形

ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise);

arc方法

l  x和y参数是圆心坐标

l  radius是半径

l  startAngle和endAngle则是扇形的起始角度和终止角度(以弧度表示)

l  anticlockwise表示做图时应该逆时针画(true)还是顺时针画(false)

    //////////
    //绘制路径 //
    //////////
    context.beginPath()
    context.moveTo(20, 20)
    context.lineTo(30, 30)
    context.moveTo(100, 150)
    context.lineTo(150, 200)
    context.lineWidth = 2
    context.strokeStyle = "red"
    context.stroke()

设置渐变色

createLinearGradient方法用来设置渐变色。

createLinearGradient方法的参数是(x1, y1, x2, y2),其中x1和y1是起点坐标,x2和y2是终点坐标。通过不同的坐标值,可以生成从上至下、从左到右的渐变等等。

    /////////
    //渐变色 //
    /////////
    var myGradient = context.createLinearGradient(0, 0, 0, 60);
    myGradient.addColorStop(0, "#BABABA");
    myGradient.addColorStop(1, "#636363");
    context.fillStyle = myGradient;
    context.fillRect(10,250,200,100);

设置阴影

    /////////
    //渐变色 //
    /////////
    var myGradient = context.createLinearGradient(0, 0, 0, 60);
    myGradient.addColorStop(0, "#BABABA");
    myGradient.addColorStop(1, "#636363");
    context.fillStyle = myGradient;
    context.fillRect(10,250,200,100);

<!doctype html><script type="text/javascript">

var mycanvas = document.getElementById("myCanvasTag");
var context = mycanvas.getContext(‘2d‘);

//////////
//绘制路径 //
//////////
context.beginPath()
context.moveTo(20, 20)
context.lineTo(30, 30)
context.moveTo(100, 150)
context.lineTo(150, 200)
context.lineWidth = 2
context.strokeStyle = "red"
context.stroke()

/////////
//绘制矩形 //
/////////
context.fillStyle = "red"
context.fillRect(250,250,50,50)
//空心圆
context.strokeRect(10,10,200,100);
//清除矩形
context.clearRect(250,250,20,20)

/////////
//绘制文本 //
/////////
// 设置字体
context.font = "Bold 20px Arial";
// 设置对齐方式
context.textAlign = "left";
// 设置填充颜色
context.fillStyle = "#008600";
// 设置字体内容,以及在画布上的位置
context.fillText("Hello!", 10, 50);
// 绘制空心字
context.strokeText("Hello!", 10, 100);

//////////////
//绘制圆形和扇形 //
//////////////
///绘制实心
context.beginPath();
context.arc(300, 150, 50, 0, Math.PI*2, true);
context.fillStyle = "#000000";
context.fill();

//绘制空心圆形
context.beginPath();
context.arc(60, 60, 50, 0, Math.PI*2, true);
context.lineWidth = 1.0;
context.strokeStyle = "#000";
context.stroke();

/////////
//渐变色 //
/////////
var myGradient = context.createLinearGradient(0, 0, 0, 60);
myGradient.addColorStop(0, "#BABABA");
myGradient.addColorStop(1, "#636363");
context.fillStyle = myGradient;
context.fillRect(10,250,200,100);

//阴影
context.shadowOffsetX = 10; // 设置水平位移
context.shadowOffsetY = 10; // 设置垂直位移
context.shadowBlur = 5; // 设置模糊度
context.shadowColor = "rgba(0,0,0,0.5)"; // 设置阴影颜色
context.fillStyle = "#CC0000";
context.fillRect(250, 350, 100, 30);

</script>

时间: 2024-11-13 00:02:23

canvas学习笔记一的相关文章

html5 canvas 学习笔记(一)

一.canvas元素API canvas元素并未提供很多API,实际上他只提供了两个属性与三个方法: 1.canvas元素属性 width 属性:与 height 属性: canvas元素绘图表面的宽度,在默认状况下,浏览器会将canvas元素大小设定成与绘图表面大小一致,然而如果在css中覆写了元素大小,那么浏览器则会将绘图表面进行缩放,使之符合元素尺寸.其值为非负整数,默认值为300. 2.canvas元素方法 getContext()方法: 返回与该canvas元素相关的绘图环境对象,每个

[转载]Android Bitmap和Canvas学习笔记

http://blog.chinaunix.net/uid-20771867-id-3053339.html [转载]Android Bitmap和Canvas学习笔记,布布扣,bubuko.com

Canvas 学习笔记1

#Canvas 学习笔记1 @[Canvas,Nunn,HTML5,javascript] ##前言 相信大家多多少少都有了解过`Canvas`,这里我就不多做解释了,网上也充斥了这方面的知识,很多人看了之后,其实发现作用非常小,因为似乎这些东西什么也做不了,本着学习提升自己,造福大家,我打算把我学习`Canvas`的历程记录在这里. 首先推荐大家先看看阮一峰大大写的这个[Canvas API](http://javascript.ruanyifeng.com/htmlapi/canvas.ht

【HTML】【学习】 Canvas学习笔记【上】

Canvas是HTML新增的开发跨平台动画和游戏的标准解决方案,能够实现对图像和视频进行像素级操作. 一.在页面中添加canvas元素 就像添加一个普通div一样,canvas的添加方式为: <canvas id = "myCanvas" width = "200px" height = "100px">不支持时显示的部分</canvas> 可以用对div添加样式的方法使用CSS对Canvas添加样式 二.使用Canvas

【HTML】【学习】 2、Canvas学习笔记【上】

Canvas是HTML新增的开发跨平台动画和游戏的标准解决方案,能够实现对图像和视频进行像素级操作. 一.在页面中添加canvas元素 就像添加一个普通div一样,canvas的添加方式为: <canvas id = "myCanvas" width = "200px" height = "100px">不支持时显示的部分</canvas> 可以用对div添加样式的方法使用CSS对Canvas添加样式 二.使用Canvas

canvas学习笔记

学习网址:https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API <canvas> 是 HTML5 新增的元素,可使用JavaScript脚本来绘制图形. canvas可以用来做下面的事:

【canvas学习笔记一】基本认识

<canvas>标签定义了一块画布,画布可以在网页中绘制2D和3D图象,现在先学习如何绘制2D图象,绘制3D图象属于WebGL的内容(也就是网页版的OpenGL,3D图形接口). 属性 <canvas>只有width和height两个属性.如果没有设置width和height属性,canvas的默认初始大小是宽300px,高150px.如果通过CSS来设置canvas的宽高,而设置的宽高不是默认大小的比例,则canvas呈现的图象会失真变形.所以,建议用JavaScript来设置c

HTML5 Canvas 学习笔记(canvas绘制线条、矩形、多边形、圆形、圆环、组合图形、文字、自定义图像)

学习资源:http://www.w3school.com.cn/html5/html_5_canvas.asp   http://blog.csdn.net/clh604/article/details/8536059   http://www.jb51.net/html5/70307.html 一.对 canvas 的理解 <canvas>标签是 HTML5 中的新标签,像所有的 dom 对象一样它有自己本身的属性.方法和事件. canvas 是用来在网页上绘制图形的(我们通常称之为画布),

Canvas学习笔记——动画中的三角学

示例1,跟随鼠标的键头: 需要掌握一个重要的公式,这个方法返回从 x 轴到点 (x,y) 之间的角度 Math.atan2(dy,dx); 关键代码: 1 function Arrow() { 2 this.x = 0; 3 this.y = 0; 4 this.rotate = 0; 5 this.color = '#ffff00'; 6 } 7 8 Arrow.prototype.draw = function(context) { 9 context.save(); 10 context.