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

开发笔记:svgmakeaface

本文由编程笔记#小编为大家整理,主要介绍了svgmakeaface相关的知识,希望对你有一定的参考价值。 
本文由编程笔记#小编为大家整理,主要介绍了svg make a face相关的知识,希望对你有一定的参考价值。


 

技术分享图片

 


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

 


推荐阅读
  • 1.移除consol.log()的babel插件安装:npmibabel-plugin-transform-remove-console-D配置:babel.config.js:这 ... [详细]
  • 一、路由首先需要配置路由,就是点击good组件进入goodDetail组件配置路由如下{path:goodDetail,component:goodDetail}同时在good组件中写入如下点击事件,路由中加入 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
  • npminstall-Dbabelcorebabelpreset-envbabelplugin-transform-runtimebabelpolyfillbabel-loader ... [详细]
  • Vue cli2.0 项目中使用Monaco Editor编辑器
    monaco-editor是微软出的一条开源web在线编辑器支持多种语言,代码高亮,代码提示等功能,与VisualStudioCode功能几乎相同。在项目中可能会用带代码编 ... [详细]
  • .babelrc是用来设置转码规则和插件的,这种文件在window上无法直接创建,也无法在HBuilder中创建,甚至无法查看,但可以在sublimetext中创建、查看并编辑。当 ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • 前段时间做一个项目,需求是对每个视频添加预览图,这个问题最终选择方案是:用canvas.toDataYRL();来做转换获取视频的一个截图,添加到页面中,达到自动添加预览图的目的。 ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 使用npmi编译vue项目出现无法下载github.com中的对应的包源文件报错信息如下:npmERR!fatal:unabletoaccess'https:github ... [详细]
author-avatar
白大姐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有