热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

style对象微信小程序_微信小程序API绘图

wx.createContext()​创建并返回绘图上下文context对象。context​context只是一个记录方法调用的容器,用于生成记录绘制行为的acti

wx.createContext()

​ 创建并返回绘图上下文context对象。

context

​ context只是一个记录方法调用的容器,用于生成记录绘制行为的actions数组。context跟不存在对应关系,一个context生成画布的绘制动作数组可以应用于多个。// 假设页面上有3个画布

var canvas1Id = 3001;

var canvas2Id = 3002;

var canvas3Id = 3003;

var context = wx.createContext();

[canvas1Id, canvas2Id, canvas3Id].forEach(function(id){

context.clearActions();

// 在context上调用方法

wx.drawCanvas({

canvasId: id,

actions: context.getActions();

});

});

context对象的方法列表:方法 参数 说明getActions 无 获取当前context上存储的绘图动作

clearActions 无 清空当前的存储绘图动作

变形

对横纵坐标进行缩放

对坐标轴进行顺时针旋转

对坐标原点进行缩放

save 无 保存当前坐标轴的缩放、旋转、平移信息

restore 无 恢复之前保存过的坐标轴的缩放、旋转、平移信息

绘制

在给定的矩形区域内,清除画布上的像素

在画布上绘制被填充的文本

fill 无 对当前路径进行填充

stroke 无 对当前路径进行描边

路径

把路径移动到画布中的指定点,但不创建线条。

添加一个新点,然后在画布中创建从该点到最后指定点的线条。

添加一个矩形路径到当前路径。

添加一个弧形路径到当前路径,顺时针绘制。

样式

方法详解:

scale

在调用scale()方法后,之后创建的路径其横纵坐标会被缩放。多次调用scale,倍数会相乘。参数 类型 范围 说明scaleWidth Number 1=100%,0.5=50%,2=200%,依次类推 横坐标缩放的倍数

scaleHeight Number 1=100%,0.5=50%,2=200%,依次类推 纵坐标轴缩放的倍数

示例代码:下载

//scale.js

Page({

onReady:function(e){

var context = wx.createContext();

context.rect(5,5,25,15)

context.stroke();

context.scale(2,2); //再放大2倍

context.rect(5,5,25,15);

context.stroke();

context.scale(2,2); //再放大2倍

context.rect(5,5,25,15)

context.stroke();

wx.drawCanvas({

canvasId:1,

actions:context.getActions()

});

}

})

rotate

以原点为中心,原点可以用translate方法修改。顺时针旋转当前坐标轴。多次调用rotate,旋转的角度会叠加。参数 类型 范围 说明rotate Number degrees * Math.PI/180;degrees范围为0~360 旋转角度,以弧度计

示例代码:下载//rotate.js

Page({

onReady:function(e){

var context = wx.createContext();

context.rect(50,50,200,200)

context.stroke();

context.rotate(5*Math.PI/180)

context.rect(50,50,200,200)

context.stroke();

context.rotate(5*Math.PI/180)

context.rect(50,50,200,200)

context.stroke()

wx.drawCanvas({

canvasId:1,

actions:context.getActions()

});

}

})

translate

对当前坐标系的原点(0, 0)进行变换,默认的坐标系原点为页面左上角。参数 类型 范围 说明x Number 水平坐标平移量

y Number 竖直坐标平移量

示例代码:下载//translate.js

Page({

onReady:function(){

var context = wx.createContext();

context.rect(50,50,200,200)

context.stroke()

context.translate(50,50)

context.rect(50,50,200,200)

context.stroke();

wx.drawCanvas({

canvasId:1,

actions:context.getActions()

});

}

})

clearRect

清除画布上在该矩形区域内的内容参数 类型 范围 说明x Number 矩形区域左上角的x坐标

y Number 矩形区域左上角的y坐标

width Number 矩形区域的宽度

height Number 矩形区域的高度

示例代码:下载//clearrect.js

Page({

onReady:function(){

var context = wx.createContext();

context.rect(50,50,200,200)

context.fill()

context.clearRect(100,100,50,50)

wx.drawCanvas({

canvasId:1,

actions:context.getActions()

});

}

})

drawImage

绘制图像,图像保持原始尺寸。参数 类型 范围 说明imageResource String 通过chooseImage得到一个文件路径或者一个项目目录内的图片 所要绘制的图片资源

x Number 图像左上角的x坐标

y Number 图像左上角的y坐标

示例:下载//drawimage.js

Page({

onReady:function(e){

var context = wx.createContext();

wx.chooseImage({

success:function(res){

context.drawImage(res.tempFilePaths[0],0,0)

wx.drawCanvas({

canvasId:1,

actions:context.getActions()

});

}

})

}

})

fillText

在画布上绘制被填充的文本。参数 类型 范围 说明text String 在画布上输出的文本

x Number 绘制文本的左上角x坐标位置

y Number 绘制文本的左上角y坐标位置

示例代码:下载//filltext.js

Page({

onReady:function(){

var context = wx.createContext();

context.setFontSize(14)

context.fillText("MINA",50,50)

context.moveTo(0,50)

context.lineTo(100,50)

context.stroke();

context.setFontSize(20)

context.fillText("MINA",100,100)

context.moveTo(0,100)

context.lineTo(200,100)

context.stroke();

wx.drawCanvas({

canvasId:1,

actions:context.getActions()

});

}

})

beginPath

开始创建一个路径,需要调用fill或者stroke才会使用路径进行填充或描边。同一个路径内的多次setFillStyle、setStrokeStyle、setLineWidth等设置,以最后一次设置为准。

closePage

关闭一个路径。

moveTo

把路径移动到画布中的指定点,不创建线条。参数 类型 范围 说明x Number 目标位置的x坐标

y Number 目标位置的y坐标

lineTo

在当前位置添加一个新点,然后在画布中创建从该点到最后指定点的路径。参数 类型 范围 说明x Number 目标位置的x坐标

y Number 目标位置的y坐标

rect

添加一个矩形路径到当前路径。参数 类型 范围 说明x Number 矩形路径左上角的x坐标

y Number 矩形路径左上角的y坐标

width Number 矩形路径的宽度

height Number 矩形路径的高度

arc

添加一个弧形路径到当前路径,顺时针绘制。参数 类型 范围 说明x Number 矩形路径左上角的x坐标

y Number 矩形路径左上角的y坐标

radius Number 矩形路径的宽度

startAngle Number 弧度, 0到2pi 起始弧度

sweepAngle Number 弧度, 0到2pi 从起始弧度开始,扫过的弧度

quadraticCurveTo

创建二次贝塞尔曲线路径。参数 类型 范围 说明cpx Number 贝塞尔控制点的x坐标

cpy Number 贝塞尔控制点的y坐标

x Number 结束点的x坐标

y Number 结束点的y坐标

bezierCurveTo

创建三次方贝塞尔曲线路径。参数 类型 范围 说明cp1x Number 第一个贝塞尔控制点的 x 坐标

cp1y Number 第一个贝塞尔控制点的 y 坐标

cp2x Number 第二个贝塞尔控制点的 x 坐标

cp2y Number 第二个贝塞尔控制点的 y 坐标

x Number 结束点的 x 坐标

y Number 结束点的 y 坐标

setFillStyle

设置纯色填充。

设置颜色为填充样式参数 类型 范围 说明color String 'rgb(255, 0, 0)'或'rgba(255, 0, 0, 0.6)'或'#ff0000'格式的颜色字符串 设置为填充样式的颜色

setStrokeStyle

​ 设置纯色描边,参数同setFillStyle。

示例代码:下载//setfillstyle.js

Page({

onReady:function(e){

var context = wx.createContext();

context.setFillStyle("#ff00ff");

context.setStrokeStyle("#00ffff");

context.rect(50,50,100,100)

context.fill()

context.stroke()

wx.drawCanvas({

canvasId:1,

actions:context.getActions()

});

}

})

setShadow

设置阴影样式。参数 类型 范围 说明offsetX Number 阴影相对于形状在水平方向的偏移

offsetY Number 阴影相对于形状在竖直方向的偏移

blur Number 0~100 阴影的模糊级别,数值越大越模糊

color Color 'rgb(255, 0, 0)'或'rgba(255, 0, 0, 0.6)'或'#ff0000'格式的颜色字符串 阴影的颜色

setFontSize

设置字体的字号。参数 类型 范围 说明fontSize Number 字体的字号

setLineWidth

设置线条的宽度。参数 类型 范围 说明lineWidth Number 线条的宽度

setLineCap

设置线条的结束端点样式。参数 类型 范围 说明lineCap String 'butt'、'round'、'square' 线条的结束端点样式

setLineJoin

设置两条线相交时,所创建的拐角类型。参数 类型 范围 说明lineJoin String 'bevel'、'round'、'miter' 两条线相交时,所创建的拐角类型

setMiterLimit

设置最大斜接长度,斜接长度指的是在两条线交汇处内角和外角之间的距离。 当setLineJoin为'miter'时才有效。超过最大倾斜长度的,连接处将以lineJoin为bevel来显示参数 类型 范围 说明miterLimit Number 最大斜接长度

示例代码:下载//line.js

Page({

onReady:function(e){

var context = wx.createContext();

context.setLineWidth(10);

context.setLineCap("round")

context.setLineJoin("miter");

context.setMiterLimit(10);

context.moveTo(20,20);

context.lineTo(150,27);

context.lineTo(20,54);

context.stroke();

context.beginPath();

context.setMiterLimit(3);

context.moveTo(20,70);

context.lineTo(150,77);

context.lineTo(20,104);

context.stroke();

wx.drawCanvas({

canvasId:1,

actions:context.getActions()

});

}

})

wx.drawCanvas(OBJECT)

OBJECT参数说明:参数 类型 必填 说明canvasId String 是 画布标识,传入的cavas-id

actions Array 是 绘图动作数组,由wx.createContext创建的context,调用getActions方法导出绘图动作数组。

示例:下载

// index.js

Page({

canvasIdErrorCallback: function(e){

console.error(e.detail.errMsg);

},

onReady: function(e){

//使用wx.createContext获取绘图上下文context

var context = wx.createContext();

context.setStrokeStyle("#00ff00");

context.setLineWidth(5);

context.rect(0,0,200,200);

context.stroke()

context.setStrokeStyle ("#ff0000") ;

context.setLineWidth (2)

context.moveTo(160,100)

context.arc(100,100,60,0,2*Math.PI,true);

context.moveTo(140,100);

context.arc(100,100,40,0,Math.PI,false);

context.moveTo(85,80);

context.arc(80,80,5,0,2*Math.PI,true);

context.moveTo(125,80);

context.arc(120,80,5,0,2*Math.PI,true);

context.stroke();

//调用wx.drawCanvas,通过canvasId指定在哪张画布上绘制,通过actions指定绘制行为

wx.drawCanvas({

canvasId: 'firstCanvas',

actions: context.getActions() //获取绘图动作数组

});

}

});



推荐阅读
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
author-avatar
yngbzl_165
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有