• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > 详解html5 Canvas drawing的示例代码 (一)

详解html5 Canvas drawing的示例代码 (一)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含html5 ,Canvas ,drawing等相关知识,匿名希望在学习及工作中可以帮助到您
只有对基础二维图形的绘画(drawing)、着色(coloring)、变换(transforming)有较强基础,才能更加有效的利用Canvas;

下面,我就简单了解一下,canvas是如何绘画基本shape的(矩形、直线、圆弧、贝赛尔曲线)等;

先贴一个以下所有涉及到的实现运行的基本代码段:

Base code

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <script type="text/javascript" src="modernizr-latest.js"></script>
        <script type="text/javascript">
            window.addEventListener("load", eventWindowLoaded, false);
            var Debugger = function() {};
            Debugger.log = function(message) {
                try {
                    console.log(message);
                } catch (exception) {
                    return;
                }
            }
            
            function eventWindowLoaded() {
                canvasApp();
            }

            function canvasSupport() {
                return Modernizr.canvas;
            }

            function canvasApp() {
                //是否支持CANVAS判断
if(!canvasSupport()) {
                    return;
                }
                //取Canvas
var theCanvas = document.getElementById("canvasOne");
                //获取绘图环境context
var context = theCanvas.getContext("2d");
                //绘图方法的实现
function drawScreen() {}
                //绘图方法调用执行
                drawScreen();
            }
        </script>
    </head>
    <body>
        <div style="position: absolute; top: 50px; left: 50px; border:1px solid #0000ff">
            <canvas id="canvasOne" width="550" height="400">
                Your browser does not support HTML5 Canvas.
            </canvas>
        </div>
    </body>
</html>

以下所有实例代码,只要把上面的function drawScreen()替换掉即可!

Basic Rectangle Shape(矩形)

在Canvas中,画矩形有三种方式:filling(), stroking(), or clearing

三种方式对应以下三种方法(参数都相同,分别是矩形的左上角的坐标[x,y]、矩形的宽度、矩形的高度):


    1. fillRect(x,y,width,height):填充矩形区域;

    2. strokeRect(x,y,width,height):画一个矩形边框;

    3. clearRect(x,y,width,height):清除指定的矩形区域、使该区域变得透明;

Example

function drawScreen() {
context.fillStyle = '#000000';//填充颜色
context.strokeStyle = '#00ff00';//轮廓颜色
context.lineWidth = 2;//线宽
context.fillRect(10, 10, 40, 40);//填充矩形
context.strokeRect(7, 7, 46, 46);//画矩形轮廓
context.clearRect(20, 20, 20, 20);//清除矩形区域
}
上一篇有提到Current state; 当我们在绘画时,我们可以利用所谓的绘画状态的堆栈, 对于canvas context在任何一个时间的数据的每一个状态都会存储; 下面是对于每一个状态,存储在堆栈中的一个数据列表; 变换矩阵(旋转、移动、缩放等); 剪切区域; Canvas特征的当前值(部分): — globalAlpha — globalCompositeOperation — strokeStyle — textAlign, textBaseline — lineCap, lineJoin, lineWidth, miterLimit — fillStyle — font — shadowBlur, shadowColor, shadowOffsetX, and shadowOffsetY在绘图环境中,正在操作的当前path and 当前位置并不是状态的一部分;Importmant!!!如何保存恢复当前的状态呢? context.save()---push to stack; context.restore()---pop form stack;先有一个简单的印象,之后会更加详细的剖析;


Create Lines(直线)

利用path来创建线(line)

Path:用来画出一系列的相连的圆弧或者线条,可以称之为“轨迹”,使用它可以画出任意复杂的形状;

一个Canvas Context仅有一个current path ;

在调用context.save()时,current path并不做为当前的状态(current state)存储于stack中;

利用.beginPath()功能方法来启动一个Path;

利用.closePath()功能方法来关闭一个Path;

Example:画一条10px宽度的水平直线

function drawScreen() {
    context.strokeStyle = "#000000";//线的颜色                    
    context.lineWidth = 10;//线的宽度
    context.beginPath();//启动path
    context.moveTo(20, 20);
    context.lineTo(100, 20);
    context.stroke();//绘画
    context.closePath();//关闭path
}

<

您可能想查找下面的文章:

  • HTML5的本地存储
  • Define charset for HTML5 Doctype
  • HTML5 canvas如何绘制动态径向渐变
  • 如何使用HTML5 Canvas绘制动态线性渐变
  • HTML5 canvas如何实现马赛克的淡入淡出效果(代码)
  • HTML5 canvas中如何绘制图像
  • 如何使用HTML5 canvas实现图像的马赛克
  • html5 canvas实现简单的双缓冲
  • HTML5 Canvas 图形组合是如何实现的?附代码
  • HTML5 figure标签是什么意思?HTML5 figure标签的使用方法详解

相关文章

  • 2018-12-03H5中indexedDB 数据库的使用方法详解
  • 2017-08-06HTML5无刷新改变当前url的代码
  • 2018-12-03纯js和CSS3炫酷自动幻灯片特效
  • 2018-12-03HTML5中的强制下载属性download使用
  • 2017-08-06HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
  • 2017-08-06HTML5新增的8类INPUT输入类型介绍
  • 2018-12-03HTML5通过调用canvas对象的getContext()方法来获取绘图环境_html5教程技巧
  • 2017-08-06深入浅析HTML5中的SVG
  • 2018-12-03DOCTYPE与浏览器渲染介绍
  • 2018-12-03html5利用canvas绘画二级树形结构图

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • html5中 media(播放器)的api使用指南_html5教程技巧
    • 基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
    • HTML5里的placeholder属性使用实例和美化显示效果的方法
    • 使用HTML5中的contentEditable来将多行文本自动增高_html5教程技巧
    • HTML5每日一练之Canvas标签的应用-绘制圆形
    • 一款html5 canvas实现的图片玻璃碎片特效
    • HTML5+NodeJs实现WebSocket即时通讯的示例代码分享
    • HTML5单页面手势滑屏切换原理
    • 纯js和CSS3炫酷自动幻灯片特效
    • 怎么向行外人形象地介绍 HTML5 页面的概念?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有