> 웹 프론트엔드 > JS 튜토리얼 > WeChat 애플릿 Canvas 강화 구성 요소 예제에 대한 자세한 설명 및 소스 코드 공유

WeChat 애플릿 Canvas 강화 구성 요소 예제에 대한 자세한 설명 및 소스 코드 공유

高洛峰
풀어 주다: 2017-02-08 14:49:04
원래의
1267명이 탐색했습니다.

이 글은 주로 WeChat 미니 프로그램 Canvas 강화 구성 요소에 대한 자세한 설명과 소스 코드 공유 관련 정보를 소개합니다. WeZRender는 WeChat 미니 프로그램 Canvas 강화 구성 요소에 대한 자세한 소개를 참조할 수 있습니다.

WeZRender는 HTML5 Canvas 클래스 라이브러리 ZRender를 기반으로 하는 WeChat 애플릿 Canvas 향상 구성 요소입니다.

微信小程序 Canvas增强组件实例详解及源码分享

WXML:

 <canvas style="width: 375px; height: 600px;" canvas-id="line-canvas-1">canvas>
로그인 후 복사

JS:

 var wezrender = require(&#39;../../lib/wezrender&#39;);

  zr = wezrender.zrender.init("line-canvas-1", 375, 600);
로그인 후 복사

사용 기능

데이터 기반

WeZRender를 사용하여 그림을 그리면 그래픽 데이터만 정의하면 됩니다.

 var circle = new wezrender.graphic.shape.Circle(   
    shape: {
      cx: 50,
      cy: 50,
      r: 50
    },
    style: {
      fill: &#39;red&#39;,
      lineWidth: 10
    }
  });
로그인 후 복사

풍부한 그래픽 옵션

다양한 그래픽 요소 내장(원, 타원, 고리, 섹터, 직사각형, 다각형, 직선, 곡선, 하트 모양) , 물방울, 장미 라인, 트로코이드, 텍스트, 그림 등), 통합되고 풍부한 그래픽 속성이 개인화된 요구를 완벽하게 충족합니다.

 var droplet = new wezrender.graphic.shape.Droplet({
    shape: {
      cx: 200,
      cy: 300,
      width: 50,
      height: 50
    },
    style: {
        fill: &#39;#ff9999&#39;
    }
  });
로그인 후 복사

강력한 애니메이션 지원

Promise 스타일의 애니메이션 인터페이스와 공통 이징 기능을 제공하여 다양한 애니메이션 요구 사항을 쉽게 실현할 수 있습니다.

var image = new wezrender.graphic.Image({
    style: {
      x: 0,
      y: 0,
      image: &#39;../../images/koala.jpg&#39;,
      width: 32,
      height: 24,
      text: &#39;koala&#39;
    }
  });
  zr.add(image);

  image.animateStyle(true)
    .when(2000, {
      x: 350,
      y: 450,
      width: 360,
      height: 270,
    })
    .start();
로그인 후 복사


확장 용이

분할 및 정복 그래프 정의 전략을 사용하면 그래프 요소를 확장할 수 있습니다.

var Pin = wezrender.graphic.Path.extend({
    type: &#39;pin&#39;,
    shape: {
      // x, y on the cusp
      x: 0,
      y: 0,
      width: 0,
      height: 0
    },
    buildPath: function (path, shape) {
      var x = shape.x;
      var y = shape.y;
      var w = shape.width / 5 * 3;
      // Height must be larger than width
      var h = Math.max(w, shape.height);
      var r = w / 2;

      // Dist on y with tangent point and circle center
      var dy = r * r / (h - r);
      var cy = y - h + r + dy;
      var angle = Math.asin(dy / r);
      // Dist on x with tangent point and circle center
      var dx = Math.cos(angle) * r;

      var tanX = Math.sin(angle);
      var tanY = Math.cos(angle);

      path.arc(
        x, cy, r,
        Math.PI - angle,
        Math.PI * 2 + angle
      );

      var cpLen = r * 0.6;
      var cpLen2 = r * 0.7;
      path.bezierCurveTo(
        x + dx - tanX * cpLen, cy + dy + tanY * cpLen,
        x, y - cpLen2,
        x, y
      );
      path.bezierCurveTo(
        x, y - cpLen2,
        x - dx + tanX * cpLen, cy + dy + tanY * cpLen,
        x - dx, cy + dy
      );
      path.closePath();
    }
  });
로그인 후 복사

읽어주셔서 감사합니다. 도움이 되기를 바랍니다. 이 사이트를 지원해 주셔서 감사합니다!

WeChat 애플릿 Canvas 강화 구성 요소 예제에 대한 자세한 설명과 소스 코드 공유 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿