• 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:字符串,路径,背景,图片的详解

基于HTML5 Canvas:字符串,路径,背景,图片的详解

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含字符串,路径,背景,图片等相关知识,佚名 希望在学习及工作中可以帮助到您

创建一个Canvas画布的方法如下:

<canvas>标签本身并不具备画图的能力,其本身只是为JavaScript提供了一个绘制图像的区域,因此画图工作需要再JavaScript中完成。如下所示是画图之前需要的准备工作:

得到的Context对象是HTML5的内建对象,其中包含了许多图形绘制和调整的方法,在JavaScript中通过操作它即可以在Canvas画布中绘制所需的图形。

字符串

使用Context对象的fillText()方法能够在画布中绘制字符串。fillText()方法的原型如下:

void fillText(text, left,top, [maxWidth]);

其四个参数的含义分为是:需绘制的字符串,绘制到画布中时左上角在画布中的横坐标及纵坐标,绘制的字符串的最大长度。其中最大长度maxWidth是可选参数。

另外,可以通过改变Context对象的font属性来调整字符串的字体以及大小,默认为”10px sans-serif”。

如下的示例在画布中(字符串的左上角处于画布中央)显示了字符串“Hello Canvas!”

路径

HTML5 Canvas的基本图形都是以路径为基础的。通常使用Context对象的moveTo()、lineTo()、rect()、arc()等方法先在画布中描出图形的路径点,然后使用fill()或者stroke()方法依照路径点来填充图形或者绘制线条。

通常,在开始描绘路径之前需要调用Context对象的beginPath()方法,其作用是清除之前的路径并提醒Context开始绘制一条新的路径,否则当调用stroke()方法的时候会绘制之前所有的路径,影响绘制效果,同时也因为重复多次操作而影响网页性能。另外,调用Context对象的closePath()方法可以显式地关闭当前路径,不过不会清除路径。

以下是一些描绘路径的方法的原型:

void moveTo(x, y);

用于显式地指定路径的起点。默认状态下,第一条路径的起点是画布的(0, 0)点,之后的起点是上一条路径的终点。两个参数分为表示起点的x、y坐标值。

void lineTo(x, y);

用于描绘一条从起点从指定位置的直线路径,描绘完成后绘制的起点会移动到该指定位置。参数表示指定位置的x、y坐标值。

void rect(left, top,width, height);

用于描绘一个已知左上角顶点位置以及宽和高的矩形,描绘完成后Context的绘制起点会移动到该矩形的左上角顶点。参数表示矩形左上角顶点的x、y坐标以及矩形的宽和高。

void arcTo(x1, y1, x2, y2,radius);

用于描绘一个与两条线段相切的圆弧,两条线段分别以当前Context绘制起点和(x2, y2)点为起点,都以(x1, y1)点为终点,圆弧的半径为radius。描绘完成后绘制起点会移动到以(x2, y2)为起点的线段与圆弧的切点。

void arc(x, y, radius,startAngle, endAngle, anticlockwise);

用于描绘一个以(x, y)点为圆心,radius为半径,startAngle为起始弧度,endAngle为终止弧度的圆弧。anticlockwise为布尔型的参数,true表示逆时针,false表示顺时针。参数中的两个弧度以0表示0°,位置在3点钟方向;Math.PI值表示180°,位置在9点钟方向。

void quadraticCurveTo(cpx,cpy, x, y);

用于描绘以当前Context绘制起点为起点,(cpx,cpy)点为控制点,(x, y)点为终点的二次样条曲线路径。

void bezierCurveTo(cpx1,cpy1, cpx2, cpy2, x, y);

用于描绘以当前Context绘制起点为起点,(cpx1,cpy1)点和(cpx2, cpy2)点为两个控制点,(x, y)点为终点的贝塞尔曲线路径。


路径描绘完成后,需要调用Context对象的fill()和stroke()方法来填充路径和绘制路径线条,或者调用clip()方法来剪辑Canvas区域。以上三个方法的原型如下:

void stroke();

用于按照已有的路径绘制线条。

void fill();

用于使用当前的填充风格来填充路径的区域。

void clip();

用于按照已有的路线在画布中设置剪辑区域。调用clip()方法之后,图形绘制代码只对剪辑区域有效而不再影响区域外的画布。如调用之前没有描绘路径(即默认状态下),则得到的剪辑区域为整个Canvas区域。


此外,Context对象还提供了相应的属性来调整线条及填充风格,如下所示:

strokeStyle

线条的颜色,默认为”#000000”,其值可以设置为CSS颜色值、渐变对象或者模式对象。

fillStyle

填充的颜色,默认为”#000000”,与strokeStyle一样,值也可以设置为CSS颜色值、渐变对象或者模式对象。

lineWidth

线条的宽度,单位是像素(px),默认为1.0。

lineCap

线条的端点样式,有butt(无)、round(圆头)、square(方头)三种类型可供选择,默认为butt。

lineJoin

线条的转折处样式,有round(圆角)、bevel(平角)、miter(尖角)三种;类型可供选择,默认为miter。

miterLimit

线条尖角折角的锐利程序,默认为10。


如下的示例分别调用了部分上述方法和属性来绘制图形:

conte

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

  • 基于HTML5 Canvas:字符串,路径,背景,图片的详解
  • 基于HTML5 Canvas的字符串,路径,背景,图片的分析
  • 基于HTML5 Canvas:字符串,路径,背景,图片的详解_html5教程技巧

相关文章

  • 2017-08-06移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
  • 2018-12-03hwSlider-内容滑动切换效果(三):jquery.hwSlide.js插件封装
  • 2018-12-03select下拉框的右边怎么增加提示图标
  • 2018-12-03H5语义标签实际案例
  • 2018-12-03Html5中video标签的用法:如何自动填充满父div标签
  • 2018-12-03为什么现在HTML5的优势越来越大
  • 2017-08-06检测浏览器对HTML5和CSS3支持度的方法
  • 2018-12-03React Router中的核心history库的详细分析
  • 2018-12-03input元素的url类型和email类型简介_html5教程技巧
  • 2018-12-03html5为输入框添加语音输入功能

文章分类

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

最近更新的内容

    • 为什么苹果还要使用 HTML5 开发 iOS 上的新版 App Store?
    • 详细介绍html5小游戏制作思路的代码实例
    • 实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码_html5教程技巧
    • 五分钟学会HTML5!(一)
    • HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
    • 分享利用HTML5实现图片压缩上传的实例代码
    • 月薪10-12k的前端人员应该具备怎样一种技术水平?
    • 基于html5绘制圆形多角图案
    • 利用简洁的图片预加载组件提升html5移动页面的用户体验
    • HTML5和CSS3扁平化风格博客教程的资源分享

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

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