国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

WeChat ??? ?? ?? / 微信小程序API 繪圖

微信小程序API 繪圖

wx.createContext()


創(chuàng)建并返回繪圖上下文context對(duì)象。

context

context只是一個(gè)記錄方法調(diào)用的容器,用于生成記錄繪制行為的actions數(shù)組。context跟<canvas/>不存在對(duì)應(yīng)關(guān)系,一個(gè)context生成畫布的繪制動(dòng)作數(shù)組可以應(yīng)用于多個(gè)<canvas/>。

// 假設(shè)頁(yè)面上有3個(gè)畫布
var canvas1Id = 3001;
var canvas2Id = 3002;
var canvas3Id = 3003;

var context = wx.createContext();

[canvas1Id, canvas2Id, canvas3Id].forEach(function (id) {
  context.clearActions();
  // 在context上調(diào)用方法
  wx.drawCanvas({
    canvasId: id,
    actions: context.getActions();
  });
});

context對(duì)象的方法列表:

方法參數(shù)說明
getActions獲取當(dāng)前context上存儲(chǔ)的繪圖動(dòng)作
clearActions清空當(dāng)前的存儲(chǔ)繪圖動(dòng)作
變形  
scale 對(duì)橫縱坐標(biāo)進(jìn)行縮放
rotate 對(duì)坐標(biāo)軸進(jìn)行順時(shí)針旋轉(zhuǎn)
translate 對(duì)坐標(biāo)原點(diǎn)進(jìn)行縮放
save保存當(dāng)前坐標(biāo)軸的縮放、旋轉(zhuǎn)、平移信息
restore恢復(fù)之前保存過的坐標(biāo)軸的縮放、旋轉(zhuǎn)、平移信息
繪制  
clearRect 在給定的矩形區(qū)域內(nèi),清除畫布上的像素
fillText 在畫布上繪制被填充的文本
drawImage 在畫布上繪制圖像
fill對(duì)當(dāng)前路徑進(jìn)行填充
stroke對(duì)當(dāng)前路徑進(jìn)行描邊
路徑  
beginPath開始一個(gè)路徑
closePath關(guān)閉一個(gè)路徑
moveTo 把路徑移動(dòng)到畫布中的指定點(diǎn),但不創(chuàng)建線條。
lineTo 添加一個(gè)新點(diǎn),然后在畫布中創(chuàng)建從該點(diǎn)到最后指定點(diǎn)的線條。
rect 添加一個(gè)矩形路徑到當(dāng)前路徑。
arc 添加一個(gè)弧形路徑到當(dāng)前路徑,順時(shí)針繪制。
quadraticCurveTo 創(chuàng)建二次方貝塞爾曲線
bezierCurveTo 創(chuàng)建三次方貝塞爾曲線
樣式  
setFillStyle 設(shè)置填充樣式
setStrokeStyle 設(shè)置線條樣式
setShadow 設(shè)置陰影
setFontSize 設(shè)置字體大小
setLineCap 設(shè)置線條端點(diǎn)的樣式
setLineJoin 設(shè)置兩線相交處的樣式
setLineWidth 設(shè)置線條寬度
setMiterLimit 設(shè)置最大傾斜

方法詳解:

scale

在調(diào)用scale()方法后,之后創(chuàng)建的路徑其橫縱坐標(biāo)會(huì)被縮放。多次調(diào)用scale,倍數(shù)會(huì)相乘。

QQ截圖20170208133838.png

//scale.js
<!--scale.wxml --> <canvas canvas-id="1" />
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()
    });
  }
})

201609261030525317.png

rotate

以原點(diǎn)為中心,原點(diǎn)可以用translate方法修改。順時(shí)針旋轉(zhuǎn)當(dāng)前坐標(biāo)軸。多次調(diào)用rotate,旋轉(zhuǎn)的角度會(huì)疊加。

參數(shù)類型范圍說明
rotateNumberdegrees * Math.PI/180;degrees范圍為0~360旋轉(zhuǎn)角度,以弧度計(jì)

示例代碼:

//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()
    });
  }
})

201609261031438320.png

translate

對(duì)當(dāng)前坐標(biāo)系的原點(diǎn)(0, 0)進(jìn)行變換,默認(rèn)的坐標(biāo)系原點(diǎn)為頁(yè)面左上角。

參數(shù)類型范圍說明
xNumber 水平坐標(biāo)平移量
yNumber 豎直坐標(biāo)平移量

示例代碼:

//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()
    });
  }
})

201609261031553071.png


clearRect

清除畫布上在該矩形區(qū)域內(nèi)的內(nèi)容

參數(shù)類型范圍說明
xNumber 矩形區(qū)域左上角的x坐標(biāo)
yNumber 矩形區(qū)域左上角的y坐標(biāo)
widthNumber 矩形區(qū)域的寬度
heightNumber 矩形區(qū)域的高度

示例代碼:

//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()
    });
  }
})

201609261032093621.png

drawImage

繪制圖像,圖像保持原始尺寸。

參數(shù)類型范圍說明
imageResourceString通過chooseImage得到一個(gè)文件路徑或者一個(gè)項(xiàng)目目錄內(nèi)的圖片所要繪制的圖片資源
xNumber 圖像左上角的x坐標(biāo)
yNumber 圖像左上角的y坐標(biāo)

示例:

//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()
        });
      }
    })
  }
})

201609261032277489.png

fillText

在畫布上繪制被填充的文本。

參數(shù)類型范圍說明
textString 在畫布上輸出的文本
xNumber 繪制文本的左上角x坐標(biāo)位置
yNumber 繪制文本的左上角y坐標(biāo)位置

示例代碼:

//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()
    });
  }
})

201609261032388289.png


beginPath

開始創(chuàng)建一個(gè)路徑,需要調(diào)用fill或者stroke才會(huì)使用路徑進(jìn)行填充或描邊。同一個(gè)路徑內(nèi)的多次setFillStyle、setStrokeStyle、setLineWidth等設(shè)置,以最后一次設(shè)置為準(zhǔn)。

closePage

關(guān)閉一個(gè)路徑。

moveTo

把路徑移動(dòng)到畫布中的指定點(diǎn),不創(chuàng)建線條。

QQ截圖20170208134100.png

lineTo

在當(dāng)前位置添加一個(gè)新點(diǎn),然后在畫布中創(chuàng)建從該點(diǎn)到最后指定點(diǎn)的路徑。

參數(shù)類型范圍說明
xNumber 目標(biāo)位置的x坐標(biāo)
yNumber 目標(biāo)位置的y坐標(biāo)
rect

添加一個(gè)矩形路徑到當(dāng)前路徑。

QQ截圖20170208134149.png

arc

添加一個(gè)弧形路徑到當(dāng)前路徑,順時(shí)針繪制。

QQ截圖20170208134201.png
quadraticCurveTo

創(chuàng)建二次貝塞爾曲線路徑。

QQ截圖20170208134211.png

bezierCurveTo

創(chuàng)建三次方貝塞爾曲線路徑。

QQ截圖20170208134225.png

setFillStyle

設(shè)置純色填充。

設(shè)置顏色為填充樣式

參數(shù)類型范圍說明
colorString'rgb(255, 0, 0)'或'rgba(255, 0, 0, 0.6)'或'#ff0000'格式的顏色字符串設(shè)置為填充樣式的顏色
setStrokeStyle

設(shè)置純色描邊,參數(shù)同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()
    });
  }
})

201609261032547620.png

setShadow

設(shè)置陰影樣式。

QQ截圖20170208134252.png
setFontSize

設(shè)置字體的字號(hào)。

QQ截圖20170208134707.png
setLineWidth

設(shè)置線條的寬度。

QQ截圖20170208134718.png
setLineCap

設(shè)置線條的結(jié)束端點(diǎn)樣式。

QQ截圖20170208134736.png
setLineJoin

設(shè)置兩條線相交時(shí),所創(chuàng)建的拐角類型。

QQ截圖20170208134745.png
setMiterLimit

設(shè)置最大斜接長(zhǎng)度,斜接長(zhǎng)度指的是在兩條線交匯處內(nèi)角和外角之間的距離。 當(dāng)setLineJoin為'miter'時(shí)才有效。超過最大傾斜長(zhǎng)度的,連接處將以lineJoin為bevel來顯示

參數(shù)類型范圍說明
miterLimitNumber 最大斜接長(zhǎng)度

示例代碼:下載

//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()
    });
  }
})

201609261033171009.png


wx.drawCanvas(OBJECT)

OBJECT參數(shù)說明:

QQ截圖20170208134815.png

示例:下載

<!--canvas.wxml--><canvas cavas-id="firstCanvas" />
// 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();  

    //調(diào)用wx.drawCanvas,通過canvasId指定在哪張畫布上繪制,通過actions指定繪制行為
    wx.drawCanvas({
      canvasId: 'firstCanvas',
      actions: context.getActions() //獲取繪圖動(dòng)作數(shù)組
    });
  }
});