zoukankan      html  css  js  c++  java
  • html5中在canvas上绘图

    canvas是通过JavaScript控制的,而且其大小必须在绘制的时候就确定大小,不能再通过控制或改变canvas元素的大小

    //html代码
    <canvas id="my_canvas" width="150" height="150">
    	fallback content here
    </canvas>
    
    //js代码
    //通过JavaScript查看浏览器是否支持canvas元素
    var canvas=document.getElement('my_canvas');
    //先通过id属性获得canvas,看浏览器支持canvas的getContext方法
    if(canvas.getContext){
    	//2d的意思表示创建的是一个风格,左上角是坐标原点
    	var context=canvas.getContext("2d");
    	//设置图形的颜色为红色
    	context.fillStyle="rgb(200,0,0)";
    	//设置图形的起点坐标XY,长和宽,下面画的是一个起点是(10,10)长和宽都是100的正方形
    	context.fillRect(10,10,100,100);
    	//向画布中加入文字
    	context.font='italic 40px sans-serif';
    	context.textBaseline='top';
    	context.fillText('AwesomeCo',60,0);
    	//在canvas中绘制线条
    	context.lineWidth=2;
    	context.beginPath();
    	//画四个点
    	context.moveTo(0,40);
    	context.lineTo(30,0);
    	context.lineTo(60,40);
    	context.lineTo(285,40);
    	//只有使用了stroke方法才能画出线来
    	context.stroke();
    	context.closePath();
    	//移动画板原点
    	//在移动原点前要先使用save()方法保留原点,以便恢复时使用,设置为还原点,还原点是以栈的结构存储
            //恢复时可以通过restore()恢复到栈最上面的还原点
    	context.save();
    	//移动到新的原点,并画一个正方形
    	context.translate(20,20);
    	context.fillRect(0,0,20,20);
    	//绘制三角形
    	//要先给画笔上色
    	context.fillStyle='#fff';//注意到给画笔上色的两种方法可以使用rgb(a,b,c)也可以使用‘#abc’样式
    	//strokeStyle可以用来设置图形轮廓的颜色
    	context.strokeStyle='#fff';
    
    	context.lineWidth=2;
    	context.beginPath();
    	context.moveTo(0,20);
    	context.lineTo(10,0);
    	context.lineTo(20,20);
    	context.lineTo(0,20);
    	context.fill();
    	context.closePath();
    	context.restore();
    }else{
    	//如果浏览器不支持canvas则此处应用来显示替代canvas的文本内容
    }
    
     
    知识点扩充:
    比较stroke与fill,strokeStyle与fillStyle的区别
    stroke:线条,外形,轮廓
    fill:封闭图形的内部
    在使用stroke及fill时都要先使用
    context.lineWidth=;
    context.beginPath()
    /**/
    /**/
    context.closePath();
     
    stroke中的/**/内容为
    context.strokeSytle=;
    context.stroke();
    为所画的内容画线条
     
    fill中的/**/内容为
    context.fillStyle=;
    context.fill();
    当所画的图形为封闭图形时,画笔会自动上色并且全部显示出来
     
    这两个方法也可能同时使用
     
    由于IE9之前的版本不能很好的兼容canvas元素,Google发布了一个名为ExplorerCanvas的库,为IE用户开放了几乎所有的Canvas APi
    我们在使用时只需要将js引入就可以
    <!--[if lte IE 8]>
    <script type=”text/javascript” 
            charset=”utf-8”
            src=”js/excanvas.js”>
    </script>
    <!--[endif]-->
  • 相关阅读:
    Android四大组件之BroadcastReceiver
    Android四大组件之Activity详解
    2017-2018-1 20155307 《信息安全系统设计基础》第十周课上未完成补充以及课下IPC作业
    第八周课上额外项目:pwd的实现
    20155307《信息安全系统设计基础》第9周学习总结
    2017-2018-11 20155307刘浩 20155338常胜杰 20155335俞昆 实验三 实时系统实验报告
    20155307 刘浩 信息安全技术(李冬冬) 实验三 数字证书应用 实验报告
    2017-2018-1 20155307 《信息安全系统设计基础》第七周学习总结
    实验二 20155307 20155335 20155338 实验报告 固件程序设计
    (完整!)2017-11-1 第七次 信息安全系统设计基础课 主要内容
  • 原文地址:https://www.cnblogs.com/Dream-Seeker/p/4434411.html
Copyright © 2011-2022 走看看