html5 canvas基本用法

通过对canvas的初步了解,经过几天的总结,吧canvas的基本用法总结如下:方便以后查阅

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>canvas 使用实例</title>
</head>

<body style="padding:0; margin:0;" onLoad="draw()">

<canvas width="150" height="150" style=" border:1px solid #ccc;" id="canvas"></canvas>

<script type="text/javascript">
function draw(){
    var canvas = document.getElementById("canvas");//获取canvas元素
    var ctx = canvas.getContext("2d");//定义canvas场景

/**基本形状的绘制**/
    //绘制矩形
    ctx.fillStyle = "rgb(200,0,0)";//填充颜色
    ctx.fillRect(0,0,55,50);//绘制图形
    ctx.fillStyle = "rgba(0,0,200,0.5)";//填充颜色带透明度
    ctx.fillRect(30,30,55,50);//绘制图形
    ctx.clearRect(30,30,55,50);//绘制空白的矩形
    ctx.strokeRect(30,30,55,50);//绘制带边框的矩形

    //按路径绘制图形
    ctx.beginPath();//开始路径绘图
    ctx.moveTo(75,50);//笔触起点
    ctx.lineTo(100,75);//画直线
    ctx.lineTo(100,25);//画直线
    ctx.lineTo(75,50);//画直线(其实已经回到了起点)
    ctx.closePath();//关闭路径(不关闭也可以,在填充的时候回字段闭合路径)
    ctx.fill();//填充路径

    //使用路径绘制一个笑脸(主要用到圆形画法)
    ctx.beginPath();
    ctx.arc(75,75,50,0,Math.PI*2,true);//ctx.arc(圆心横坐标,圆心纵坐标,半径,起始角度,终止角度,顺时针);
    ctx.moveTo(110,75);
    ctx.arc(75,75,35,0,Math.PI,false);
    ctx.moveTo(65,65);
    ctx.arc(60,65,5,0,Math.PI*2,true);
    ctx.moveTo(95,65);
    ctx.arc(90,65,5,0,Math.PI*2,true);
    ctx.stroke();

    //用路径画矩形
    ctx.rect(75,75,50,50);
    ctx.stroke();

    //贝塞尔曲线,二次贝塞尔曲线,三次贝塞尔曲线..........

/**样式与色彩**/
    //填充颜色与轮廓颜色
    ctx.rect(75,75,50,50);
    ctx.fillStyle = "rgb(200,0,0)";//填充颜色
    ctx.fill();
    ctx.strokeStyle = "orange";//轮廓颜色orange/#FFA500/rgb(255,165,0)/rgba(255,165,0,1)
    ctx.stroke();

    //画一个渐变效果的四色格
    ctx.fillStyle = ‘#FD0‘;
    ctx.fillRect(0,0,75,75);
    ctx.fillStyle = ‘#6C0‘;
    ctx.fillRect(75,0,75,75);
    ctx.fillStyle = ‘#09F‘;
    ctx.fillRect(0,75,75,75);
    ctx.fillStyle = ‘#F30‘;
    ctx.fillRect(75,75,75,75);
    ctx.fillStyle = "#FFF";//填充颜色设置成白色
    ctx.globalAlpha = 0.2;//设置透明度
    for(var i=0;i<7;i++){
        ctx.beginPath();
        ctx.arc(75,75,10+10*i,0,Math.PI*2,true);
        ctx.fill();
    }

    //画4个带有渐变的矩形
    ctx.fillStyle = ‘rgb(255,221,0)‘;
    ctx.fillRect(0,0,150,37.5);
    ctx.fillStyle = ‘rgb(102,204,0)‘;
    ctx.fillRect(0,37.5,150,37.5);
    ctx.fillStyle = ‘rgb(0,153,255)‘;
    ctx.fillRect(0,75,150,37.5);
    ctx.fillStyle = ‘rgb(255,51,0)‘;
    ctx.fillRect(0,112.5,150,37.5);
    for(var i=0;i<10;i++){
        ctx.fillStyle = ‘rgba(255,255,255,‘+(i+1)/10+‘)‘;
        for(var j=0;j<4;j++){
            ctx.fillRect(5+i*14,5+j*37.5,14,27.5);
        }
    }

/**绘制文本**/
    ctx.font = "24px serif";//设置文本样式:font/textAlign/textBaseline/direction     文本测量
    ctx.fillText("Hello Word",10,50);//实心文字
    ctx.strokeText("Hello Word",10,50);//空心文字

/**强大的处理图片**/
    //引入背景图片,并且以该图片作为背景进行绘图
    var img = new Image();
    img.onload = function(){
        ctx.drawImage(img,0,0);//处理图像 0 0处开始绘制图像
          ctx.beginPath();
          ctx.moveTo(30,96);
          ctx.lineTo(70,66);
          ctx.lineTo(103,76);
          ctx.lineTo(170,15);
          ctx.stroke();
    };
    img.src = "1.jpg";//引入图像的位置

    //对图片进行缩放 比例不等
    var img = new Image();
    img.onload = function(){
        ctx.drawImage(img,0,0,150,150);
    };
    img.src = ‘1.jpg‘;

/**变形**/
    //save 与 restore 图像的样式保存于内存(数据是以"堆"的方式保存到内存里面)
    ctx.fillRect(0,0,150,150);
    ctx.save();
    ctx.fillStyle = ‘#09F‘;
    ctx.fillRect(15,15,120,120);
    ctx.save();
    ctx.fillStyle = ‘#FFF‘;
    ctx.globalAlpha = 0.5;
    ctx.fillRect(30,30,90,90);
    ctx.restore();
    ctx.fillRect(45,45,60,60);//注意样式
    ctx.restore();
    ctx.fillRect(60,60,30,30);//注意样式

    //移动 translate 移动基准点
    ctx.fillRect(0,0,50,50);
    ctx.translate(50,50);
    ctx.fillRect(0,0,50,50); 

    //还有旋转/缩放/变形 等更多操作,有待深入研究

/**更多高级操作请访问:https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial/Basic_usage**/
}
</script>
</body>
</html>
时间: 2024-10-11 22:13:42

html5 canvas基本用法的相关文章

HTML5 canvas 中的arcTo()方法的用法

除了arc()之外,Canvas的绘图环境对象还提供了另一个用于创建圆弧路径的方法,那就是arcTo().改方法接受了5个参数: arcTo(x1,x2,y1,y2,radius) arcTo()方法的参数分别代表两个点击圆形半径.该方法一指定的半径来绘制一条圆弧,此圆弧与当前点到第一个点(x1,y1)的连线相切,而且第一个点到第二点(x2,y2)的连线也相切.该方法的这些特性,使得它非常适合用了绘制矩形的原角. 使用arcTo()方法: html: <!Doctyp html> <ht

HTML5 Canvas八大核心技术及其API用法

什么是canvas? Canvas元素是HTML5的一部分,允许脚本语言动态渲染 位图像.Canvas由一个可绘制区域HTML代码中的属性定义高度和宽度(注:用其属性width和height设置宽度和高度时不能跟像素单位 “px”).JavaScript代码可访问该区域,通过一套完整的绘图功能类似于其他通用二维的API,从而生成动态的图形. Canvas八大核心技术(3D3R公司创始人兼CEO Ohad Eder-Pressman的独到见解): 1.游戏 HTML5在基于Web的图像显示方面比F

HTML5 canvas 绘制精美的图形

HTML5 是一个新兴标准,它正在以越来越快的速度替代久经考验的 HTML4.HTML5 是一个 W3C “工作草案” — 意味着它仍然处于开发阶段 — 它包含丰富的元素和属性,它们都支持现行的 HTML 4.01 版本规范.它还引入了几个新元素和属性,它们适用许多使用 web 页面的领域 — 音频.视频.图形.数据存储.内容呈现,等等.本文主要关注图形方面的增强:canvas. 新的 HTML5 canvas 是一个原生 HTML 绘图簿,用于 JavaScript 代码,不使用第三方工具.跨

HTML5 Canvas arc()函数//////////////////////(转)

HTML5 Canvas arc()函数 实例 创建一个圆形: var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.beginPath(); ctx.arc(100,75,50,0,2*Math.PI); ctx.stroke(); 浏览器支持 Internet Explorer 9.Firefox.Opera.Chrome 以及 Safari 支持 arc() 方法.

使用html5 canvas绘制圆形或弧线

注意:本文属于<html5 Canvas绘制图形入门详解>系列文章中的一部分.如果你是html5初学者,仅仅阅读本文,可能无法较深入的理解canvas,甚至无法顺畅地通读本文.请点击上述链接以了解使用html5 canvas绘制图形的完整内容. 在html5中,CanvasRenderingContext2D对象也提供了专门用于绘制圆形或弧线的方法,请参考以下属性和方法介绍: arc(x, y, radius, startRad, endRad, anticlockwise) 在canvas画

HTML5 Canvas绚丽的小球详解

实例说明: 实例使用HTML5+CSS+JavaScript实现小球的运动效果 掌握Canvas的基本用法 技术要点: 从需求出发 分析Demo要实现的功能 擅于使用HTML5 Canvas 参考手册 主要分为两个部分: 静态布局:小球的设计,包括小球的位置.颜色.大小和大小变化情况等,初始化小球的函数,渲染函数,Update函数 动态主体:变量.数组的的定义,小球显示时长定时,鼠标移动触发小球运动的函数 代码部分: canvas标签,提供绘图的画布 js逻辑:静态小球 其中,_init()函数

[js高手之路] html5 canvas系列教程 - 文本样式(strokeText,fillText,measureText,textAlign,textBaseline)

接着上文线条样式[js高手之路] html5 canvas系列教程 - 线条样式(lineWidth,lineCap,lineJoin,setLineDash)继续. canvas提供两种输出文本的方式: strokeText:描边文本 fillText:填充文本 fillStyle配合fillText使用,strokeStyle配合strokeText使用 strokeText用法: cxt.strokeText( text, x,  y, [maxwidth] ) text:需要输出的文本内

[js高手之路] html5 canvas系列教程 - 图片操作(drawImage,clip,createPattern)

接着上文[js高手之路] html5 canvas系列教程 - 文本样式(strokeText,fillText,measureText,textAlign,textBaseline)继续,本文介绍的内容是canvas开发,特别是游戏中,比较常用的内容:图片处理.在游戏中的资源大多数都是加载图片. 一.canvas怎么加载图片? canvas提供3种图片加载的API调用方式. drawImage( image, dx, dy ) drawImage( image, dx, dy, dw, dh

HTML5 Canvas arc()函数

实例 创建一个圆形: var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.beginPath(); ctx.arc(100,75,50,0,2*Math.PI); ctx.stroke(); 浏览器支持 Internet Explorer 9.Firefox.Opera.Chrome 以及 Safari 支持 arc() 方法. 注释:Internet Explorer