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

HTML5之4__Canvas API: 绘制曲线、变换

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

本文主要包含HTML5,Canvas,API等相关知识,匿名希望在学习及工作中可以帮助到您
HTML5 开发 起点之一就是 Canvas, 通过它可以动态生成和展示图形、图表、图像以及动画.

在Canvas 出现之前,开发人员若要在浏览器中使用绘图API, 只能使用 Adobe 的Flash和 SVG(可伸缩矢量图形) 插件, 或者只有IE才支持的VML(矢量标记语言), 以及一些JS技巧。

Canvas 和 SVG 对比

Canvas 本质上是一个位图画布, 其上绘制的图形是不可缩放的, 不能像 SVG 图像那样可以缩放, 此外用Canvas 绘制出来的对象不属于页面

DOM 结构或者任何命名空间, 这被认为是一个缺陷, SVG 图像却可以在不同的分辨率下流畅地缩放, 并且支持单击检测. 尽管Canvas 有明显的不足,但 Canvas API 有两个优势:

1. 不需要将所绘制图像中的每个图元当做对象存储, 执行性能非常好。

2. 在其他编程语言现有的优秀二维绘图API 的基础上实现 Canvas API 相对来说比较简单.

一. 先介绍 canvas 绘制曲线

看代码


<!DOCTYPE>
<html>
<head>
    <meta charset="utf-8" />
    <title>绘制曲线</title>
    <script language="javascript">
        function drawTrails() {
            var canvas = document.getElementById('trails');
            var context = canvas.getContext('2d');
            context.save();
            context.translate(-10, 350);
            context.beginPath();
            //第一条曲线向右上方弯曲
            context.moveTo(0,0);
            context.quadraticCurveTo(170, -50, 260, -190);

            // 第二条曲线向右下方弯曲
            context.quadraticCurveTo(310, -250, 410, -250);

            //使用棕色的粗线条来绘制路径
            context.strokeStyle = '#663300';
            context.lineWidth = 20;
            context.stroke();
            //恢复之前的canvas 状态
            context.restore();
        }
        window.addEventListener("load", drawTrails, true);
    </script>
</head>
<body>
    <canvas height="400" width="400" id="trails" style="border: 1px solid;"/>
</body>
</html>


在Chrome 浏览器运行效果



二. 变换

canvas 绘制图像的一种方式是 使用变换 transformation. 实际上 变换是实现复杂canvas 操作的最好方式.

可以这样理解 变换: 把它当成是介于开发人员发出的指令和 canvas 显示结果之间的一个修改正层,

以下一个例子展示了如何使用 最简单变换方法---------translate()

看代码


<!DOCTYPE html>
<html>
  <meta charset="utf-8" />
  <title>变换对角线</title>

  <canvas id="diagonal" style="border: 1px solid;"  width="200" height="200"> </canvas>
  <script>
        function drawDiagonal() {
            var canvas = document.getElementById('diagonal');
            var context = canvas.getContext('2d');

            // 保存当前绘图状态
            context.save();

            //向右下方移动绘图上下文
            context.translate(70, 140);

            //以原点为起点,绘制与前面相同的线段
            context.beginPath();
            context.moveTo(0, 0);
            context.lineTo(70, -70);
            context.stroke();

            // 恢复原有的绘图状态
            context.restore();
        }

        window.addEventListener("load", drawDiagonal, true);
  </script>
</html>

运行效果


以上就是HTML5之4__Canvas API: 绘制曲线、变换的内容,更多相关内容请关注微课江湖()!

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

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2017-08-06HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
  • 2018-12-03自己学习前端开发的,公司对 Dreamweaver 和 fl 要求高不高?
  • 2018-12-03基于Vue全家桶开发的前端组件管理平台
  • 2018-12-03HTML5游戏框架cnGameJS开发实录-精灵对象篇
  • 2018-12-03基于HTML5 Canvas 实现地铁站监控
  • 2018-12-03Html5 Canvas中支持对text文本进行渲染的示例代码(图)
  • 2018-12-03Html5原生拖拽操作实例讲解
  • 2018-12-03分享一个利用H5实现下拉顶部放大的实例代码
  • 2018-12-03在上海培训前端,达内,火星,传智,千锋综合考虑哪家好一点?有知道的大神吗?谢谢
  • 2018-12-03html5指南-2.如何操作document metadata_html5教程技巧

文章分类

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

最近更新的内容

    • 关于h5中背景音乐的自动播放效果的实现
    • 为什么制定html5标准的网站奇丑无比?
    • HTML5 Canvas API制作简单的猜字游戏
    • WebSocket 是什么原理?为什么可以实现持久连接?
    • 移动端h5轮播插件swipe实例详解
    • css3 transform 3d 使用css3创建动态3d立方体(html5实践)
    • HTML5 Web Worker的使用
    • 使用javascript和HTML5 Canvas画的四渐变色播放按钮效果_html5教程技巧
    • html5-Canvas可以在web中绘制各种图形
    • html5教程制作简单画板代码分享

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

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