H5:画布Canvas基础知识讲解(一)之canvas基础、2D context API、路径

简介: H5:画布Canvas基础知识讲解(一)之canvas基础、2D context API、路径

HTML5规范引进了很多新特性,其中最令人期待的之一就是Canvas元 素。HTML5 Canvas提供了通过JavaScript绘制图形的方法,此方法使用简单但功能强大。每一个Canvas元素都有一个“上下文(context)” (想象成绘图板上的一页),在其中可以绘制任意图形。浏览器支持多个Canvas上下文,并通过不同的API提供图形绘制功能。

大部分的浏览器都支持2D Canvas上下文——包括Opera,Firefox,Konqueror和Safari。而且某些版本的Opera还支持3D Canvas,Firefox也可以通过插件形式支持 3D Canvas。

本文介绍主要介绍2D Canvas基础以及如何使用基本Canvas函数,如线条、形状、图像和文字等。为了理解此文章,你最好了解JavaScript基础知识。

下面开始我们的讲解:

canvas****基础

创建Canvas的方法很简单,只需要在HTML页面中添加元素就可以了:

<canvas id="myCanvas" width="300" height="300">
这是一个Canvas标签案例
</canvas>
复制代码

为了能在JavaScript中引用Canvas,最好给它设置ID ;也需要给Canvas设定高度和宽度。

要在Canvas画布中绘制图形需要使用JavaScript。首先通过getElementById函数找到Canvas元素,然后初始化上下文,之后可以使用上下文API绘制各种图形。下面的脚本可以在Canvas中绘制一个矩形:

var elem = document.getElementById('myCanvas');
  if (elem && elem.getContext) {
    var context = elem.getContext('2d');
    if (context) {
      context.fillRect(0, 0, 150, 100);
    }
  }
复制代码

可以把上面代码放置在文档head部分中,或者放在外部JavaScript文件中。

2D context API

介绍了如何创建Canvas后,让我们来看看2D Canvas API,看看能用这些函数做些什么。

在上面的例子中,我们展示了绘制矩形是多么简单,而通过fillStyle和strokeStyle属性可以更轻松的设置矩形的填充和线条。颜色值使用方法和CSS一样:十六进制数、rgb()、rgba() 和hsla()。

通过fillRect可以绘制带填充的矩形;使用strokeRect可以绘制只有边框没有填充的矩形。如果想清除部分Canvas可以使用 clearRect。上述三个方法的参数相同:x, y, width, height。前两个参数设定 (x,y) 坐标,后两个参数设置矩形的高度和宽度。

下面将是一个综合实例的JavaScript脚本:

context.fillStyle   = '#00f';
  context.strokeStyle = '#f00';
  context.lineWidth   = 4;
  context.fillRect  (0,   0, 150, 50);
  context.strokeRect(0,  60, 150, 50);
  context.clearRect (30, 25,  90, 60);
  context.strokeRect(30, 25,  90, 60);
复制代码

可以把上面代码放置在文档head部分中,或者放在外部JavaScript文件中。

路径

通过Canvas路径(path)可以绘制任意形状。可以先绘制轮廓,然后绘制边框和填充。创建自定义形状很简单,使用beginPath()开始 绘制,然后使用直线、曲线和其他图形绘制你的图形。绘制完毕后调用fill和stroke即可添加填充或者设置边框。调用 closePath()结束自定义图形绘制。

下面是一个绘制三角的案例的JavaScript脚本:

context.fillStyle   = '#00f';
  context.strokeStyle = '#f00';
  context.lineWidth   = 4;
  context.beginPath();
  context.moveTo(10, 10);
  context.lineTo(100, 10);
  context.lineTo(10, 100);
  context.lineTo(10, 10);
  context.fill();
  context.stroke();
  context.closePath();
复制代码

可以把上面代码放置在文档head部分中,或者放在外部JavaScript文件中。

下一节继续讲H5:画布Canvas基础知识讲解(二)之插入图像、像素级操作。


作者:zhulin1028

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章
|
4月前
|
人工智能 监控 搜索推荐
抖音电商API短视频种草,转化路径缩短70%!
在电商竞争激烈的当下,抖音电商API通过短视频种草功能,将用户购买路径缩短70%,大幅提升转化效率。本文解析其技术原理与实际应用,揭示其如何改变传统电商流程,助力商家抢占市场先机。
359 0
|
3月前
|
JSON 供应链 API
‌1688图片搜索API技术内幕:从特征提取到向量匹配的完整实现路径
1688图片搜索相似商品API基于计算机视觉技术,支持通过图片查找同款或相似商品,适用于电商选品与供应链管理。API采用RESTful设计,支持JPG/PNG格式,返回含商品ID、标题、价格、销量等JSON数据,提供Python调用示例。前往体验:c0b.cc/R4rbK2
|
3月前
|
数据采集 API
京东:调用用户行为API分析购买路径,优化页面跳转逻辑
京东通过整合用户行为API,构建购买路径分析体系,运用马尔可夫链模型识别高损耗、断裂与冗余路径,优化页面跳转逻辑。实施流程合并、预加载及实时干预策略,转化率提升30.2%,路径缩短34.9%,跳转失败率下降78.7%,实现数据驱动的精细化运营。
329 0
|
3月前
|
人工智能 搜索推荐 NoSQL
唯品会:利用直播带货API实现边看边买,缩短转化路径
唯品会通过直播带货API重构电商体验,实现“边看边买”即时决策,平均转化时间从8.2分钟降至1.5分钟,弃单率下降62%,支撑百万级并发,错误率低于0.001%。技术突破推动人货场关系重塑,未来将迈向实时化、沉浸式、无感支付新标准。
216 0
|
4月前
|
监控 搜索推荐 算法
小红书电商 API 接口:开启小红书种草商品销售转化新路径
小红书电商 API 接口打通“种草”与销售链路,助力商家实现高效转化。通过自动化数据对接、精准营销与个性化推荐,提升运营效率,降低人力成本,推动销售增长。
239 0
|
前端开发 API
Context API 实战应用
【10月更文挑战第8天】在 React 应用开发中,状态管理至关重要。本文介绍了 `Context API` 的基础概念、基本用法,以及常见问题和易错点的解决方法。通过代码示例,详细讲解了如何在组件间高效共享状态,优化性能,处理嵌套 Context 和副作用。
208 1
|
缓存 API 网络架构
Nuxt Kit API :路径解析工具
【9月更文挑战第20天】在 Nuxt Kit API 中,路径解析工具如 `resolvePath()`、`joinPaths()` 和 `relativePath()` 帮助开发者高效处理应用路径,确保资源准确加载,并支持动态路由与组件导入。这些工具提升了应用的灵活性和可扩展性,同时需注意路径准确性、跨平台兼容性和性能优化,以提升用户体验。
153 12
|
存储 JavaScript 前端开发
探索React状态管理:Redux的严格与功能、MobX的简洁与直观、Context API的原生与易用——详细对比及应用案例分析
【8月更文挑战第31天】在React开发中,状态管理对于构建大型应用至关重要。本文将探讨三种主流状态管理方案:Redux、MobX和Context API。Redux采用单一存储模型,提供预测性状态更新;MobX利用装饰器语法,使状态修改更直观;Context API则允许跨组件状态共享,无需第三方库。每种方案各具特色,适用于不同场景,选择合适的工具能让React应用更加高效有序。
313 0
|
移动开发 开发框架 小程序
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
|
开发者
告别繁琐代码,JSF标签库带你走进高效开发的新时代!
【8月更文挑战第31天】JSF(JavaServer Faces)标准标签库为页面开发提供了大量组件标签,如`&lt;h:inputText&gt;`、`&lt;h:dataTable&gt;`等,简化代码、提升效率并确保稳定性。本文通过示例展示如何使用这些标签实现常见功能,如创建登录表单和展示数据列表,帮助开发者更高效地进行Web应用开发。
189 0