码迷,mamicode.com
首页 > 其他好文 > 详细

svg make a face

时间:2019-01-13 21:10:45      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:image   form   inf   add   ted   height   ack   def   nbsp   

 

技术分享图片

 

1.创建项目

#使用simple模板
vue init webpack-simple vue-svg
#安装依赖
cd vue-svg/
npm i
#安装d3
npm i d3 --save

2.代码

技术分享图片

App.vue

<template>
  <div id="app">
    <svg id="svg"></svg>
  </div>
</template>

<script>
import * as d3 from "d3";

export default {
  name: "app",
  data() {
    return {
      msg: "Welcome to Your Vue.js App"
    };
  },
  methods: {
    draw() {
      console.log(d3);
      const svg = d3.select("#svg");

      const face = svg
        .append("circle")
        .attr("r", 200)
        .attr("fill", "yellow")
        .attr("cx", 200)
        .attr("cy", 200)
        .attr("stroke", "black");
      const leftEye = svg
        .append("circle")
        .attr("r", 30)
        .attr("fill", "black")
        .attr("cx", 100)
        .attr("cy", 140);
      const rightEye = svg
        .append("circle")
        .attr("r", 30)
        .attr("fill", "black")
        .attr("cx", 300)
        .attr("cy", 140);
      const leftEyebrow = svg
        .append("rect")
        .attr("x", 70)
        .attr("y", 80)
        .attr("height", 10)
        .attr("width", 60)
        .transition()
        .duration(1000)
        .attr("y", 60)
        .transition()
        .duration(1000)
        .attr("y", 80);
      const rightEyebrow = svg
        .append("rect")
        .attr("x", 270)
        .attr("y", 80)
        .attr("height", 10)
        .attr("width", 60)
        .transition()
        .duration(1000)
        .attr("y", 60)
        .transition()
        .duration(1000)
        .attr("y", 80);
      const mouth = svg
        .append("path")
        .attr(
          "d",
          d3.arc()({
            innerRadius: 140,
            outerRadius: 150,
            startAngle: Math.PI / 2,
            endAngle: (Math.PI * 3) / 2
          })
        )
        .attr("transform", "translate(200,200)");
    }
  },
  mounted() {
    this.draw();
  }
};
</script>

<style>
#app {
  height: 500px;
  width: 100%;
}
#svg {
  height: 100%;
  width: 100%;
}
* {
  margin: 0;
  padding: 0;
}
</style>

3.打包

#编译
npm run build
#全局安装server
npm i http-server -g
#运行server, 当前目录作为server的根目录
http-server

 

svg make a face

标签:image   form   inf   add   ted   height   ack   def   nbsp   

原文地址:https://www.cnblogs.com/startnow/p/10263870.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!