当前位置: 首页 > news >正文

threejs显示本地硬盘上的ply文件,通过webapi

由于ply文件是第三方提供的,threejs无法用绝路路径的方式显示ply

所以想通过webapi把ply通过url地址的方式给threejs 

1.webapi部分

        /// <summary>/// 获取PLY文件/// </summary>/// <returns></returns>[HttpPost(Name = "GetPly")]public async Task<IActionResult> GetPly(GlueFileModel gfm){ string fileExt = Path.GetExtension(gfm.PlyFile); //绝对路径的ply文件 例如"D:\test\test.ply"//获取文件的ContentTypevar provider = new FileExtensionContentTypeProvider();//var memi = provider.Mappings[fileExt];var memi = "application/octet-stream";var fileBytes = System.IO.File.ReadAllBytes(gpm.PlyFile);string fileName = Path.GetFileName(gpm.PlyFile);return File(fileBytes, memi, fileName);}

2.Vue部分取得ply文件

		let pa = { No: "", PlyFile: "D:/test/test.ply" }//let pa = { No: "", PlyFile: GluePlyResultFile.value }let plyUrl = ""await axios.post(global_const.WEBAPI + `Python/GetPly`, pa, { responseType: 'blob' }).then(function (response) {console.log(response);plyUrl = window.URL.createObjectURL(new Blob([response.data]));return plyUrl//response.data;}).catch(function (error) {//ElMessage.error(cmd + '命令执行异常!' + error)console.log(error);});

3.threejs中load ply方法 

		//let s = '../src/assets/ply/Result.ply'let s = plyUrl;loader.load(s,function (geometry) {console.log('loader.load ');console.log(geometry);geometry.computeVertexNormals();const pos = geometry.attributes.position;const count =10;// pos.count;const colorsArr = [];for (let i = 0; i < count; i++) {const percent = i / count; //点索引值相对所有点数量的百分比//根据顶点位置顺序大小设置颜色渐变// 红色分量从0到1变化,蓝色分量从1到0变化colorsArr.push(percent, 0, 1 - percent); //蓝色到红色渐变色}//类型数组创建顶点颜色color数据//const colors = new Float32Array(colorsArr);// 设置几何体attributes属性的颜色color属性//geometry.attributes.color = new THREE.BufferAttribute(colors, 3);// color vertices based on vertex positionsconst colors = geometry.getAttribute('position').array.slice();console.log('colors',colors)for (let i = 0, l = colors.length; i < l; i++) {if (colors[i] > 0) colors[i] = 0.5;else colors[i] = 0;}geometry.setAttribute('color', new THREE.BufferAttribute(colors, 3, false));const material2 = new THREE.PointsMaterial({ size: 0.01, vertexColors: true });//THREE.VertexColors//const material.vertexColors = true;let mesh2 = new THREE.Points(geometry, material2);mesh2.position.x = 1;//0;mesh2.position.y = 2;//-1;mesh2.position.z = 3;//0;mesh2.scale.multiplyScalar(0.4);mesh2.castShadow = true;mesh2.receiveShadow = true;scene.add(mesh2);scene.background = new THREE.Color(0x52645b);console.log('loader.load OK');},function (xhr) {//console.log((xhr.loaded / xhr.total) * 100 + "% loaded");},function (err) {console.error(err);});

相关文章:

threejs显示本地硬盘上的ply文件,通过webapi

由于ply文件是第三方提供的&#xff0c;threejs无法用绝路路径的方式显示ply 所以想通过webapi把ply通过url地址的方式给threejs 1.webapi部分 /// <summary>/// 获取PLY文件/// </summary>/// <returns></returns>[HttpPost(Name "GetPly&qu…...

代码随想录day10(2)字符串:反转字符串Ⅱ (leetcode541)

题目要求&#xff1a;给定一个字符串 s 和一个整数 k&#xff0c;从字符串开头算起, 每计数至 2k 个字符&#xff0c;就反转这 2k 个字符中的前 k 个字符。如果剩余字符少于 k 个&#xff0c;则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个&#xff0c;则反转前…...

【MySQL】_联合查询基础表

联合查询也称为多表查询&#xff0c;是将多个表联合到一起进行查询&#xff1b; 笛卡尔积是联合查询的基础&#xff0c;笛卡尔积其实就是一种排列组合&#xff0c;把两张表的记录尽可能地排列组合出n种情况&#xff1a; 以两张表&#xff1a;班级表与学生表为例&#xff0c;计…...

InnoDB存储引擎对MVCC的实现

MVCC MVCC的目的 在搞清楚MVCC之前,我们要搞懂一个问题,MVCC到底解决的是什么问题? 我用一句话概括,那就是为了解决读-写可以一起的问题! 在我们的印象里,InnoDB可以读读并发,不能读写并发,或者写写并发 这是很正常的想法,因为如果读写并发的化,会有并发问题 而对于写写…...

【精选】Java项目介绍和界面搭建——拼图小游戏 中

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏 …...

C++ //练习 10.16 使用lambda编写你自己版本的biggies。

C Primer&#xff08;第5版&#xff09; 练习 10.16 练习 10.16 使用lambda编写你自己版本的biggies。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /*******************************************************************…...

【misc | CTF】BUUCTF 二维码

天命&#xff1a;这题使用到脚本暴力破解压缩包文件里面的密码&#xff0c;还是比较有意思的 一开始是一个二维码&#xff0c;扫码进去有一个假flag 扔进图片隐写工具&#xff0c;啥也没有&#xff0c;都是同一个二维码 使用工具&#xff1a;foremost&#xff0c;直接分离图片&…...

OSCP靶场--Resourced

OSCP靶场–Resourced 考点(1.rpc枚举 2.crackmapexec密码喷洒&#xff0c;hash喷洒 3.ntds.dit system提取域hash 4.基于资源的约束委派攻击rbcd) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC -p- 192.168.188.175 --min-rate 2000 Starting Nmap 7.9…...

Vue路由(黑马程序员)

路由介绍 将资代码/vue-project(路由)/vue-project/src/views/tlias/DeptView.vue拷贝到我们当前EmpView.vue同级&#xff0c;其结构如下&#xff1a; 此时我们希望&#xff0c;实现点击侧边栏的部门管理&#xff0c;显示部门管理的信息&#xff0c;点击员工管理&#xff0c;显…...

【Java程序员面试专栏 算法思维】一 高频面试算法题:排序算法

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊排序算法,包括手撕排序算法,经典的TOPK问题以及区间合并,所以放到一篇Blog中集中练习 题目关键字解题思路时间空间快速排序双指针+递归+基准值分…...

sql注入之sqli-labs-less-1 错误注入

输入?id1 得到登录页面&#xff1a; 通过order by 函数试探&#xff1a; 5的时候报错 试探到3 的时候返回正确的值&#xff1a; 然后继续注入&#xff1a;?id -1 union select 1,2,3 -- 查看回显点&#xff1a; 开始查看数据库内容&#xff1a;id-1 union select 1,databa…...

React withRouter的使用及源码实现

一 基本介绍 作用&#xff1a; 把不是通过路由切换过来的组件中&#xff0c;将react-router 的 history、location、match 三个对象传入props对象上。比如首页&#xff01; 默认情况下必须是经过路由匹配渲染的组件才存在this.props&#xff0c;才拥有路由参数&#xff0c;才能…...

c++之旅——第四弹

大家好啊&#xff0c;这里是c之旅第三弹&#xff0c;跟随我的步伐来开始这一篇的学习吧&#xff01; 如果有知识性错误&#xff0c;欢迎各位指正&#xff01;&#xff01;一起加油&#xff01;&#xff01; 创作不易&#xff0c;希望大家多多支持哦&#xff01; 本篇文章的主…...

Mysql整理-主从复制

MySQL的主从复制是一种常见的数据复制和分布式数据共享方法。在这种架构中,一个MySQL服务器充当主(master)服务器,而一个或多个其他MySQL服务器充当从(slave)服务器。数据从主服务器复制到从服务器,实现数据的分布和备份。这种设置主要用于数据备份、读取扩展、灾难恢复…...

100个百万阅读公众号爆文案例

100个100万公众号爆文案例 自从公众号流量推送修改之后&#xff0c;原来的私域玩法一去不复返&#xff0c;公域公众号正在崛起 现在公众号的玩法就是找爆款&#xff0c;去对标&#xff0c;去学习&#xff0c;努力使自己的公众号进入流量池&#xff0c;然后吃流量主的收益 这里…...

UnityAPI的学习——Transform类

Transform类继承自Component类&#xff0c;并实现了IEnumberable接口。Transform是GameObject必须拥有得一个组件&#xff0c;用来管理所在GameObject对象的坐标位置、选择角度、和大小缩放。 Transform实现了IEnumberable接口&#xff0c;因此可以在程序中使用foreach()方法快…...

(全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF

研究生英语读写教程基础级教师用书PDF 研究生英语读写教程提高级教师用书PDF pdf下载&#xff08;完整版下载&#xff09; &#xff08;1&#xff09;研究生英语读写教程基础级教师用书PDF &#xff08;2&#xff09;研究生英语读写教程基提高级教师用书PDF...

GO基本类型

Go语言同时提供了有符号和无符号的整数类型。 有符号整型&#xff1a;int、int8、int64、int32、int64无符号整型&#xff1a;uint、uint8、uint64、uint32、uint64、uintptr 有符号整型范围&#xff1a;-2^(n-1) 到 2^(n-1)-1 无符号整型范围: 0 到 2^n-1 实际开发中由于编…...

怎么快速编辑视频

背景&#xff1a;怎么简单快速编辑视频 利用FFmpeg功能&#xff0c;简单快速编辑视频&#xff0c;如按9:16提前剪切视频、替换背景音乐。 下载FFmpeg&#xff1a;https://ffmpeg.org/download.html 将FFmpeg的路径添加到环境变量中&#xff1a; Windows&#xff1a;在系统的环…...

基于vue-office实现docx、xlsx、pdf文件的在线预览

概述 在做项目的时候会遇到docx、xlsx、pdf等文件的在线预览需求&#xff0c;实现此需求可以有多种解决方式&#xff0c;本文基于vue-office实现纯前端的文件预览。 效果 如下图&#xff0c;分别为docx、xlsx、pdf三种类型的文件在线加载后的效果。你也可以访问官方预览网址…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...