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);});

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/711602.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711602.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711602.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

分享fastapi低級錯誤

我是創建表的時候把__tablename__ 寫成__table__然后一直報這個錯誤

Android Activity跳轉詳解

在Android應用程序中&#xff0c;Activity之間的跳轉是非常常見的操作&#xff0c;通過跳轉可以實現不同界面之間的切換和交互。在本篇博客中&#xff0c;我們將介紹Android中Activity跳轉的相關知識&#xff0c;包括基本跳轉、傳遞參數、返回數據以及跳轉到瀏覽器、撥號應用和…

端游如何防破解

在2023年這個游戲大年中&#xff0c;諸多熱門大作涌現&#xff0c;作為世界級IP哈利哈利波特的衍生游戲——《霍格沃茨之遺》毫無懸念地成為2023年游戲圈的首款爆款作品&#xff0c;斬獲了一眾玩家的青睞。 在眾多光環的加持下&#xff0c;《霍格沃茨之遺》很快被著名游戲破解…

【每日前端面經】2024-03-01

題目來源: 牛客 MVVM怎么實現 MVVM分別指View、Model、ViewModel&#xff0c;View通過View-Model的DOM監聽器將事件綁定到Model上&#xff0c;而Model則通過Data Bindings來管理View中的數據&#xff0c;View-Model從中起到一個連接的作用 響應式: vue如何監聽data的屬性變化…

深入 Starknet 去中心化世界,探秘實用開發利器

Starknet 近期開放空投&#xff0c;面向 130 萬地址總量發放超 7 億枚 Token&#xff0c;讓 ECMP 早期貢獻者、GitHub 開源開發者、Starknet 用戶等各個層面的生態參與者都得以深度參與。 盛宴的背后&#xff0c;是 Starknet 正迎來發展的關鍵機遇。在今年以太坊坎昆升級的背景…

從別人的開源項目學習并吸收經驗,然后逐步搭建自己的Java項目是一個很好的學習方法

從別人的開源項目學習并吸收經驗&#xff0c;然后逐步搭建自己的Java項目是一個很好的學習方法。以下是一些建議的步驟&#xff0c;幫助你從0開始搭建并不斷完善自己的Java項目&#xff0c;直至達到高可靠、高穩定、高并發、高數據安全&#xff0c;并可以拆分為微服務的大型高質…

【漏洞復現】某廠商上網行為管理系統static_convert命令執行漏洞

Nx01 產品簡介 天融信上網行為管理系統是天融信公司憑借多年來的安全產品研發經驗&#xff0c;為滿足各行各業進行網絡行為管理和內容審計的專業產品。 Nx02 漏洞描述 天融信上網行為管理系統老版本static_convert.php接口存在RCE漏洞&#xff0c;攻擊者利用此漏洞可以獲取服務…

超強預測算法:XGBoost預測模型

目錄 往期精彩內容&#xff1a; 多變量特征序列、單序列數據預測實戰 前言 1 風速數據預處理與數據集制作 1.1 導入數據 1.2 多變量數據預處理與數據集制作 1.3 單序列數據預處理與數據集制作 2超強模型XGBoost——原理介紹 3 模型評估和對比 3.1 隨機森林預測模型 3…

基于NeRF/Gaussian的全新SLAM算法

什么是SLAM&#xff1f; SLAM&#xff0c;即同時定位與地圖構建技術&#xff0c;SLAM可以讓機器人、無人機和其他自動化系統能夠在未知環境中同時進行自我定位和環境映射。 為什么是NeRF-Based SLAM&#xff1f; 傳統CG將輸入圖像重新投影再融合到新的視圖攝像機中&#xff0c…

InfiniBand 200Gbps QSFP56 高速線纜/光纜和光模塊解決方案

隨著數據中心和人工智能迅速發展&#xff0c;對高速、低延遲和低功耗的數據傳輸需求變得至關重要。飛速&#xff08;FS&#xff09;提供針對各種高性能計算場景量身定制的各種InfiniBand線纜和光模塊產品。本文旨在概述飛速&#xff08;FS&#xff09;200G InfiniBand HDR 光纜…

深圳地鐵12號線綠色出行新時代,格力中央空調助力節能飛躍

深圳地鐵12號線&#xff0c;作為城市交通的重要組成部分&#xff0c;其運行貫穿著前海、南山、寶安、西鄉等多個區域&#xff0c;承載著數以萬計的乘客&#xff0c;是深圳市民出行的重要選擇。在這條城市動脈上&#xff0c;一項革命性的變革正在悄然發生——綠色出行的新時代正…

MSCKF2講:JPL四元數與Hamilton四元數

MSCKF2講&#xff1a;JPL四元數與Hamilton四元數 文章目錄 MSCKF2講&#xff1a;JPL四元數與Hamilton四元數2 JPL四元數2.1 定義與區別2.2 JPL四元數的乘法2.3 反對稱矩陣2.4 Ω ( ω ) \Omega(\omega) Ω(ω)矩陣2.5 JPL四元數與旋轉矩陣的轉換2.6 JPL四元數導數2.7 JPL四元數…

SpringCloud搭建微服務之Consul服務注冊與發現

1. Consul介紹 Consul是由HashiCorp公司使用Go語言開發的一款開源工具&#xff0c;主要用于實現分布式系統的服務發現和服務配置&#xff0c;其內置了服務注冊與發現框架、分布式一致性協議實現、健康檢查、Key-Value存儲、多數據中心方案。Consul具有高可移植性&#xff0c;支…

Java多線程系列——Executor

目錄 Executor框架概覽 核心組件 1. 任務&#xff08;Task&#xff09; 2. 線程池&#xff08;ThreadPool&#xff09; 3. 任務調度 4. 任務執行與結果檢索 使用案例 實際應用場景 總結 Java的多線程編程是Java語言提供的核心特性之一&#xff0c;允許開發者有效地管理…

【數倉】Hadoop軟件安裝及使用(集群配置)

一、環境準備 1、準備3臺虛擬機 Hadoop131&#xff1a;192.168.56.131Hadoop132&#xff1a;192.168.56.132Hadoop133&#xff1a;192.168.56.133 本例系統版本 CentOS-7.8&#xff0c;已安裝jdk1.8 2、hosts配置&#xff0c;關閉防火墻 vi /etc/hosts添加如下內容&#x…

ip獲取+歸屬地實現

1.背景 現在的社交平臺一般都需要展示用戶的歸屬地,這個功能有下面二個主要功能點,接下來我們來介紹下具體實現。 IP 獲取 IP 轉歸屬地 2.ip獲取 2.1 Http請求 對于controller的請求,我們只需要寫個攔截器,將用戶的ip設置進上下文即可,非常方便。 @Override public bo…

生成式AI設計模式:綜合指南

原文地址&#xff1a;Generative AI Design Patterns: A Comprehensive Guide 使用大型語言模型 (LLM) 的參考架構模式和心理模型 2024 年 2 月 14 日 對人工智能模式的需求 我們在構建新事物時&#xff0c;都會依賴一些經過驗證的方法、途徑和模式。對于軟件工程師來說&am…

物聯網與智慧城市的融合:構建智能化、便捷化、綠色化的城市未來

一、引言 隨著科技的飛速發展和城市化的不斷推進&#xff0c;物聯網技術正逐步滲透到城市的各個領域&#xff0c;成為推動智慧城市建設的核心力量。物聯網與智慧城市的融合&#xff0c;不僅為城市治理提供了高效、智能的解決方案&#xff0c;也為市民的生活帶來了前所未有的便…

如何在Node.js中使用定時器

在Node.js中使用定時器是一項常見且重要的任務&#xff0c;特別是在需要執行定時任務或者輪詢操作的情況下。Node.js提供了多種方式來實現定時器功能&#xff0c;包括setTimeout、setInterval和setImmediate等方法。本篇博客將介紹如何在Node.js中使用這些定時器&#xff0c;并…

(數據結構)二叉樹

8.二叉樹 8.1概述 二叉樹是一種基本的非線性數據結構&#xff0c;它是由n&#xff08;n>0&#xff09;個節點構成的有限集合。在二叉樹中&#xff0c;每個節點最多有兩個子節點&#xff0c;通常被稱作左孩子&#xff08;left child&#xff09;和右孩子&#xff08;right c…