1.首先创建vue3的项目

2.创建好后通过开发工具打开项目并打开命令行,输入指令 npm install 3d-force-graph 安装即可

3.在使用的页面中引入 3d-force-graph


<!--官网的 basic案例-->

<template>

<!-- ref 用于在组件中引用当前的 DOM 元素。-->
<div ref="container"></div></template>
<script setup>import {onMounted, ref} from "vue"; // 引入3d-force-graph import ForceGraph3D from "3d-force-graph";const container = ref(null)  // 作用是创建一个响应式的引用对象,并将其初始值设置为 null。const N = ref(300)const gData = ref({ nodes: [...Array(N).keys()].map(i => ({ id: i })), links: [...Array(N).keys()] .filter(id => id) .map(id => ({ source: id, target: Math.round(Math.random() * (id-1)) }))})onMounted(()=> { loadGrapg()})
// 渲染页面 const loadGrapg =() => {ForceGraph3D()(container.value) // 在给定的容器中创建一个 3D 力导向图 .graphData(gData.value);  // 将数据 gData 设置为力导向图的图数据}</script><style scoped></style>

4. 调用接口的时候,后端返回数据只需要nodes[{id:0},{id:1}], links: [{source:{}, target:{}]---source:原物体,target:目标物体

补充:

ForceGraph3D()等方法及用法如下:

// 在节点处显示文本,只需填写 nodes数组中对象的某个想要显示文本的属性名即可

.nodeLabel('id')

// 通过groudId来分组不同的颜色
.nodeAutoColorBy('group')
// 设置线条的箭头长度
.linkDirectionalArrowLength(3.5)
// 用于设置线条箭头的相对位置
.linkDirectionalArrowRelPos(1)
// 用于设置线条的曲率
.linkCurvature(0.25)
// 启用或禁用线条箭头的粒子效果
.linkDirectionalParticles(true)
// 设置箭头粒子的速度为
.linkDirectionalParticleSpeed(0.005)
// 设置线条透明度
.linkOpacity(0.5)
// 根据连接属性自动为连接线条着色,(这里官方文档写的是d => gData.nodes[d.source].group ,需要自己根据数据微调)
.linkAutoColorBy( d=> gData.value.nodes[d.value].group )
// 将节点转换成文字
.nodeThreeObject(node => {
const sprite = new SpriteText(node.id);   // 将想要的文字传入 SpriteText 
sprite.material.depthWrite = false; // false时 精灵对象将不会修改深度缓冲区的值,从而实现了精灵对象的透明背景
sprite.color = node.color; // 修改文字颜色
sprite.textHeight = 8; // 字体高度
return sprite;  // 返回此对象时报错如下,还未解决
/*报错
* 'get' on proxy: property 'modelViewMatrix' is a read-only and non-configurable data property on the proxy target but the proxy did not return its actual value (expected '#<Matrix4>' but got '#<Matrix4>')
TypeError: 'get' on proxy: property 'modelViewMatrix' is a read-only and non-configurable data property on the proxy target but the proxy did not return its actual value (expected '#<Matrix4>' but got '#<Matrix4>')
at Proxy.raycast (webpack-internal:///./node_modules/three/build/three.module.js:1677:2291)
at intersectObject (webpack-internal:///./node_modules/three/build/three.module.js:2755:674)
at Raycaster.intersectObjects (webpack-internal:///./node_modules/three/build/three.module.js:2755:410)
at HTMLCanvasElement.onPointerMove (webpack-internal:///./node_modules/three/examples/jsm/controls/DragControls.js:68:20)
* */
/*

问题可能在于 SpriteText 对象的创建和返回时发生了错误。为了解决这个问题,您可以尝试以下几个步骤:

  1. 确保正确引入了 SpriteText 对象所在的库。

  2. 检查 SpriteText 对象的创建和配置。确保您在创建 sprite 对象时正确设置了属性,例如 depthWritecolor 和 textHeight。另外,也可以尝试使用 Object.defineProperty 或 Reflect.defineProperty 来为 sprite.material 上的属性进行定义,以确保属性的可写性和可配置性。

  3. 检查使用 nodeThreeObject 方法时代理对象的配置。确保正确配置了代理对象,并为 modelViewMatrix 属性设置了正确的特性标志。

  4. 检查代码中其他与代理对象和 Three.js 相关的部分。确保没有其他地方对 modelViewMatrix 属性进行意外修改或干扰。

*/
})
.d3Force('charge').strength(-120) // 修改节点之间的电荷力强度为 -120

vue3 安装 3d-force-graph的更多相关文章

  1. Windows 10 上安装 3D Studio Max 2016 报错的解决办法

    在 Windows 10 上安装 3D Stuido Max 2016 报错,无法正常安装,查看日志是 VC 运行时安装错误,经过分析发现在 Windows 10 上已经有这些运行时并且版本比安装包中 ...

  2. 泡泡一分钟: A Linear Least Square Initialization Method for 3D Pose Graph Optimization Problem

    张宁 A Linear Least Square Initialization Method for 3D Pose Graph Optimization Problem "链接:https ...

  3. CSAcademy Beta Round #5 Force Graph

    题目链接:https://csacademy.com/contest/arhiva/#task/force_graph/ 大意是有若干个节点,每个节点对应一个二维坐标,节点之间相互有斥力存在.同时有些 ...

  4. RAMPS1.4 3D打印控制板:软件下载\连接\安装\测试

    RAMPS1.4 3D打印控制板:软件下载\连接\安装\测试 特别说明: 电源接反,电机驱动板接反将有可能烧毁芯片和电路,请再三确认后再进行通电. 如何使用: 1.需要用到的模块或器件: Arduin ...

  5. 转:3d max 2013 安装教程,凭着一种互联网精神提供给广大朋友

    看到有人在ps区咨询如何安装3d max教程,当你进行第一步之前,请先断开网络连接第一步:运行安装程序 第二步:接受安装协议,点击下一步会提示输入序列号 第三步:你会看到已经安装完成了的界面 第四部: ...

  6. 图数据库 Nebula Graph 的安装部署

    Nebula Graph:一个开源的分布式图数据库.作为唯一能够存储万亿个带属性的节点和边的在线图数据库,Nebula Graph 不仅能够在高并发场景下满足毫秒级的低时延查询要求,还能够实现服务高可 ...

  7. 用FireFox火狐浏览器的3D Tilt 插件查看网页3D视图效果

    逛博客发现了网页的3D视图效果,一搜原来是Firefox特有的一个功能,先看效果: 相当炫酷,接下来介绍如何实现. 1.首先安装3d tilt 插件: 从火狐浏览器的添加插件页面,搜索:3D Tilt ...

  8. [转]centos6.6 rpm安装与管理

    centos6.6 rpm安装与管理 原文地址:http://www.centoscn.com/CentOS/2015/0414/5182.html   rpm包管理:安装.升级.卸载.查询.检验 安 ...

  9. yum --rpm包安装

    rpm -ivh  package -i 表示安装install -v表示显示详细信息, -vv更详细些 -h表示显示安装进度 --force:表示强制安装 --nodeps:忽略依赖关系安装 --r ...

  10. Linux软件安装,RPM与YUM

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3843955.html ...

随机推荐

  1. Burp Suite最新版本专业版激活2022.12.1附原文件

    Burp Suite 攻击web 应用程序的集成平台 Burp Suite 是用于攻击web 应用程序的集成平台,包含了许多工具.Burp Suite为这些工具设计了许多接口,以加快攻击应用程序的过程 ...

  2. Nvidia GPU虚拟化

    1 背景 随着Nvidia GPU在渲染.编解码和计算领域发挥着越来越重要的作用,各大软件厂商对于Nvidia GPU的研究也越来越深入,尽管Nvidia倾向于生态闭源,但受制于极大的硬件成本压力,提 ...

  3. SPI-SPI主机硬件片选功能使用说明

    SPI主机硬件片选功能使用说明 SPI协议最早的标准,是由摩托罗拉公司制定.在协议使用的过程中,根据实际需求可能会进行一些扩展和修改. 在一份由飞思卡尔半导体发布的SPI V4.01版本规范中,对片选 ...

  4. 《简化iOS APP上架流程,App Uploader助你搞定!》

    转载;http://kxdang.com/topic/appuploader/questions.html Appuploader 常见错误及解决方法   问题解决秘籍 遇到问题,第一个请登录苹果开发 ...

  5. 2.JAVA入门基础知识

    数据类型: java的数据类型分为两大类:基本类型和引用类型 基本类型: 整数类型: byte 一个字节 -128-127 short 2个字节 32768-32767 int 4个字节 很大 lon ...

  6. NEQR: novel enhanced quantum representation

    一.概述   NEQR利用量子叠加和量子纠缠的特性,将数字图像转换为量子态表示,并通过量子门操作进行处理和操作.相较于传统的经典图像表示方法,NEQR具有更高的图像压缩率和更强的安全性,能够在保持图像 ...

  7. [OpenCV-Python] 22 直方图

    文章目录 OpenCV-Python:IV OpenCV中的图像处理 22 直方图 22.1 直方图的计算,绘制与分析 22.1.1 统计直方图 22.1.2 绘制直方图 22.1.3 使用掩模 22 ...

  8. 几行代码教你快速创建scrapy项目,非常实用建议收藏!

    import shutil,os修改settings.py def config(scrapy_path,project_name): judge=input("是否自动修改配置?是:yes ...

  9. 谁想和我一起做低代码平台!一个可以提升技术,让简历装x的项目

    序言 正如文章标题所述,最近一段时间低代码这个概念非常的火,但其实在不了解这个东西的时候觉得它真的很炫酷,从那时就萌生了做一个低代码平台的想法. 但随着时间的变化,现在市面上低代码各个业务方向的平台都 ...

  10. 【Python基础】推导式(列表、字典、集合)

    推导式是一种简洁.高效的语法,用于从一个可迭代对象中生成新的可迭代(iterable)对象. 通常情况下,在以下情况可以考虑使用推导式: 只需要简单的表达式来计算新的可迭代对象的元素. 可迭代对象不是 ...