标签云效果

news2024/9/21 3:28:02

产品要求,词云要实现动态滚动。查资料,改写效果。

echarts词云效果

在这里插入图片描述
传统的echarts-wordCloud不能满足需求。

标签云

换了标签云,以下是代码

<template>
  <div class="mx-auto" :style="{ width: width + 'px' }">
    <svg :width="width" :height="height" @mousemove="listener($event)">
      <a :href="tag.href" v-for="tag in tags" :key="tag.id">
        <text
          :x="tag.x"
          :y="tag.y"
          :font-size="18 * (600 / (600 - tag.z))"
          :fill-opacity="(400 + tag.z) / 600"
          :style="{ fill: tag.fill }"
        >
          {{ tag.text }}
        </text>
      </a>
    </svg>
  </div>
</template>

<script>
export default {
  props: {
    tagList: {
      type: Array,
      default: () => [],
    },
  },
  name: "tagCloud",
  data() {
    return {
      width: 800,
      height: 520,
      RADIUS: 230,
      speedX: Math.PI / 360,
      speedY: Math.PI / 360,
      tags: [],
    };
  },
  watch: {
    tagList: {
      handler(n, o) {
        this.init()
      },
      deep: true
    }
  },
  computed: {
    CX() {
      return this.width / 2.4;
    },
    CY() {
      return this.height / 2;
    },
  },
  created() {
  },
  mounted() {
    //使球开始旋转
    // const winWidth = document.documentElement.clientWidth || document.body.clientWidth;
    // this.width = winWidth * 0.8;
    // this.height = winWidth * (426 / 495);
    console.log(this.tagList);
    this.init();
    setInterval(() => {
      this.rotateX(this.speedX);
      this.rotateY(this.speedY);
    }, 18);
  },
  methods: {
    init() {
      let tags = [];
      for (let i = 0; i < this.tagList.length; i++) {
        let tag = {};
        let k = -1 + (2 * (i + 1) - 1) / this.tagList.length;
        let a = Math.acos(k);
        let b = a * Math.sqrt(this.tagList.length * Math.PI);
        tag.text = this.tagList[i].name;
        tag.x = this.CX + this.RADIUS * Math.sin(a) * Math.cos(b);
        tag.y = this.CY + this.RADIUS * Math.sin(a) * Math.sin(b);
        tag.z = this.RADIUS * Math.cos(a);
        tag.fill = this.getColor();
        // tag.href = '/knowledge-base/list/allMap?label=' + this.tagList[i].id;
        tags.push(tag);
      }
      this.tags = tags;
    },
    // 获取随机色
    getColor() {
      // let r = parseInt(Math.random() * 256);
      // let g = parseInt(Math.random() * 256);
      // let b = parseInt(Math.random() * 256);
      // return `rgba(${r},${g},${b},1)`;
      const colors = ['#2875B9','#2875B9','#2875B9'];
      const index = Math.floor(Math.random() * 3);
      return colors[index];
    },
    rotateX(angleX) {
      var cos = Math.cos(angleX);
      var sin = Math.sin(angleX);
      for (let tag of this.tags) {
        var y1 = (tag.y - this.CY) * cos - tag.z * sin + this.CY;
        var z1 = tag.z * cos + (tag.y - this.CY) * sin;
        tag.y = y1;
        tag.z = z1;
      }
    },
    rotateY(angleY) {
      var cos = Math.cos(angleY);
      var sin = Math.sin(angleY);
      for (let tag of this.tags) {
        var x1 = (tag.x - this.CX) * cos - tag.z * sin + this.CX;
        var z1 = tag.z * cos + (tag.x - this.CX) * sin;
        tag.x = x1;
        tag.z = z1;
      }
    },
    listener(event) {
      //响应鼠标移动
      var x = event.clientX - this.CX;
      var y = event.clientY - this.CY;
      this.speedX =
        x * 0.0001 > 0
          ? Math.min(this.RADIUS * 0.00002, x * 0.0001)
          : Math.max(-this.RADIUS * 0.00002, x * 0.0001);
      this.speedY =
        y * 0.0001 > 0
          ? Math.min(this.RADIUS * 0.00002, y * 0.0001)
          : Math.max(-this.RADIUS * 0.00002, y * 0.0001);
    },
  },
};
</script>

<style lang="less" scoped></style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2150991.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

平凉锅盔,真的绝绝子

平凉&#xff0c;这座古老的城市&#xff0c;孕育出了一种令人赞叹的美食 —— 平凉锅盔。平凉锅盔&#xff0c;那是一种能瞬间勾起人们食欲的存在。远远望去&#xff0c;它如同一座金色的小山&#xff0c;散发着诱人的光泽。其外形圆润饱满&#xff0c;厚实的面饼给人一种踏实…

时代变了,MySQL 早已不是最流行的数据库了

以下文章来源于古时的风筝 &#xff0c;作者风筝 在StackOverflow 上看到2024年技术趋势&#xff0c;关于数据库的部分&#xff0c;PostgreSQL 是开发人员使用最多的数据库&#xff0c;超过 MySQL 了。虽然在国内好像不是这样。 PostgreSQL 在 2018 年的开发者调查中首次亮相…

极越联手百度这你受得了吗!SU7还能稳坐“7字辈”头把交椅?

文/王俣祺 导语&#xff1a;自从今年上半年小米SU7标榜为“年轻人的第一台纯电轿车”&#xff0c;各家车企全都坐不住了。尤其是与小米“颇有渊源”的吉利&#xff0c;从极氪再到领克&#xff0c;目标已经可以说是路人皆知了。现在极越07也来了&#xff0c;可以看出吉利也是下了…

Python游戏开发中的16个关键概念

大家好&#xff01;今天我们要聊的是Python游戏开发中的一些关键概念。无论是初学者还是有一定经验的开发者&#xff0c;了解这些概念都将有助于你更好地掌握游戏开发的基础。接下来&#xff0c;我们将从简单的概念入手&#xff0c;逐步过渡到更复杂的技巧。 文末有惊喜福利 1.…

如何选择适合客户运营团队的帮助中心搭建工具?8款工具盘点

在竞争激烈的商业环境中&#xff0c;客户运营团队需要高效、便捷的工具来搭建帮助中心&#xff0c;以提升客户服务质量和用户体验。选择合适的帮助中心搭建工具&#xff0c;不仅能提高团队工作效率&#xff0c;还能增强客户满意度和忠诚度。本文将为您盘点八款适合客户运营团队…

FC优化配置

1.集群扩容CNA时打开bmc 2.给rhel7虚拟机安装tools-需要重启虚拟机 3.FC上创建集群 资源池右击创建集群&#xff08;物理机大于10台&#xff0c;分业务类型创建集群&#xff09; &#xff08;解决集群内主机挂了&#xff0c;动态调整&#xff09; &#xff08;解决集群内个别…

vulnhub(11):derpnstink(hydra爆破用户名和密码、验证的文件上传)

端口 nmap主机发现 nmap -sn 192.168.159.120/24 ​ Nmap scan report for 192.168.159.120 Host is up (0.00020s latency). ​ 120是新出现的机器&#xff0c;他就是靶机 nmap端口扫描 nmap -Pn 192.168.159.120 -p- --min-rate 10000 -oA nmap/scan 扫描开放端口保存到 nma…

C#为任意组件开发登录功能的记录

非常简单&#xff0c;直接给出代码&#xff1a; 数据库操作类 这个无需多言就是简单的包含了数据操作的内容&#xff0c;允许你在这一个类中写完关于本地数据库或者云数据库操作的逻辑&#xff0c;与登录逻辑分开哦。 注意&#xff0c;如果你的软件要给别人运行使用&#xf…

电脑连接手机热点只能登陆qq和微信 浏览器无法正常上网的原因

电脑连接手机热点只能登陆qq和微信 浏览器无法正常上网的原因 浏览器有报错dns错误 但是火绒无法正常修复 DNS配置异常 chrome报错DNS_PROBE_FINISHED_BAD_CONFIG 错误原因在ipv4dns服务器他的地址,如果是自动获取 是192.168.208.143 和ipv4地址冲突,导致不正常,我查看本机…

【南方科技大学】CS315 Computer Security 【Lab3 Format String Vulnerability】

目录 Lab OverviewLab TasksTask 1: The Vulnerable ProgramTask 2: Understanding the Layout of the StackTask 3: Crash the ProgramTask 4: Print Out the Server Program’s MemoryTask 5: Change the Server Program’s MemoryTask 6: Inject Malicious Code into the Se…

【第十一章:Sentosa_DSML社区版-机器学习分类】

目录 11.1 逻辑回归分类 11.2 决策树分类 11.3 梯度提升决策树分类 11.4 XGBoost分类 11.5 随机森林分类 11.6 朴素贝叶斯分类 11.7 支持向量机分类 11.8 多层感知机分类 11.9 LightGBM分类 11.10 因子分解机分类 11.11 AdaBoost分类 11.12 KNN分类 【第十一章&…

С++第十三节课 string初体验

一、string类的相关函数 string实际上也就是一个管理字符的顺序表&#xff01; 如果我们需要遍历一个字符串&#xff0c;怎么实现&#xff1f; 我们可以通过下标访问操作符 size实现字符串的遍历&#xff01; int main() {string s1("hello world");// 遍历一个字…

玩具车检测系统源码分享

玩具车检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

zynq SDK 关于SD卡报错

在修改了BD的部分代码之后&#xff0c;重新综合工程生成bit&#xff0c;之后刷新hdf文件&#xff0c;在SDK端就出现了SD卡相关的函数未定义的报错&#xff1a; Description Resource Path Location Type E:\Work\VivadoPrj\Prj1\project_1\project_1.sdk\Test\Debug/…/src/hel…

arm开发板通信

c语言复习 查询Ubuntu版本&#xff08;18.04&#xff09;和内核&#xff08;5.4&#xff09; 查询使用软件的版本号 arm开发板通信- 直播视频-- 项目第二天下午 2024-09-20 linux和windows下操作开发板前提是开发板中已经导入系统 以下是具体操作 linux下开发板的操作 li…

Java项目实战II基于Java+Spring Boot+MySQL的读书笔记共享平台(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在信息爆炸…

无人机黑飞打击技术详解

随着无人机技术的普及&#xff0c;无人机“黑飞”&#xff08;未经授权或违反规定的飞行&#xff09;现象日益严重&#xff0c;对公共安全、隐私保护及重要设施安全构成了严重威胁。为有效应对这一挑战&#xff0c;各国政府和安全机构纷纷研发并部署了一系列无人机黑飞打击技术…

龙头名企HR数字创新:超8成参调企业上线电子签

近日&#xff0c;法大大与人力资源智享会&#xff08;以下简称“智享会”&#xff09;联合发布了《第七届人力资源共享服务中心研究报告》&#xff08;点击阅读及下载&#xff1a;最新&#xff01;《第七届人力资源共享服务中心研究报告》重磅来袭&#xff09;&#xff0c;该报…

反转字符串中的单词--力扣151

反转字符串中的单词 题目思路代码 题目 思路 题目的难点在于首先要清除多余的空格&#xff0c;并且单词之间要留一个空格&#xff0c;首单词前和末尾单词后不能有多余空格。我们使用双指针去除所有的空格&#xff0c;然后在处理完一个单词后手动加一个单词。具体思路是当快指针…

李沐 过拟合和欠拟合【动手学深度学习v2】

模型容量 模型容量的影响 估计模型容量 难以在不同的种类算法之间比较,例如树模型和神经网络 给定一个模型种类,将有两个主要因素: 参数的个数参数值的选择范围 VC维