国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端使用Cesium加載三維模型全攻略

這篇具有很好參考價值的文章主要介紹了前端使用Cesium加載三維模型全攻略。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

想象一下,地球在你眼前旋轉(zhuǎn),上面還有各種3D模型,是不是很酷?Cesium是一個超酷的庫,專門用來創(chuàng)建超炫的3D地球和地圖。好,言歸正傳,今天這篇文章就分享一下前端如何使用Cesium加載三維模型。

一:準(zhǔn)備工作

首先,確保你已經(jīng)安裝了Cesium庫??梢詮腃esium官網(wǎng)下載最新版本的庫文件,或者使用npm進(jìn)行安裝:

npm install cesium
或者
yarn add cesium

然后,找一個舒服的地方坐下,準(zhǔn)備好開始你的3D之旅

二:加載模型

要加載一個3D模型,你需要知道模型在哪里,然后告訴Cesium去哪里找它。就像你告訴外賣小哥你的地址一樣。然后,你就可以把這個模型加到你的地球上了!

// 創(chuàng)建你的Cesium Viewer  
let viewer = new Cesium.Viewer('cesiumContainer');  
  
// 定義模型的坐標(biāo)和大小  
let modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(  
    Cesium.Cartesian3.fromDegrees(-75.628982, 40.028194),   
    new Cesium.HeadingPitchRoll()   
);  
  
// 定義模型的路徑和其他選項  
let modelOptions = {  
    uri: 'path/to/your/model.gltf',   
    scale: 1.0,   
    minimumPixelSize: 128,   
    maximumScale: 20000,   
    modelMatrix: modelMatrix   
};  
  
// 把模型加到場景里!  
viewer.scene.primitives.add(new Cesium.Model(modelOptions));

我們首先創(chuàng)建了一個Cesium Viewer實例,然后定義了模型的路徑和選項。其中,modelMatrix參數(shù)用于定義模型的變換矩陣,包括位置、方向、俯仰和偏航角度等。然后,我們使用new Cesium.Model()構(gòu)造函數(shù)創(chuàng)建一個模型實例,并將模型添加到場景中。
當(dāng)然別忘了把’path/to/your/model.gltf’替換成你自己的GLTF模型文件路徑哦!如果你有Blender或者其他的3D建模軟件,你可以導(dǎo)出為GLTF格式,然后放到你的項目里。建議用blender免費而且還比較好用。

三:交互和動畫

當(dāng)然,加載模型只是第一步。你還可以和模型互動哦!比如你可以給模型添加碰撞檢測,這樣你就可以知道哪些地方可以“撞”到模型。就像玩虛擬現(xiàn)實游戲一樣!
首先,你需要定義一個碰撞器的形狀和大小。然后,你可以把這個碰撞器加到場景里,和你的模型一起顯示出來。就像給你的模型穿上盔甲一樣!

// 定義碰撞器的位置和尺寸  
var boxGeometry = new Cesium.BoxGeometry({  
    length: 100000, // 長度(單位:米)  
    width: 100000, // 寬度(單位:米)  
    height: 100000 // 高度(單位:米)  
});  
var boxMaterial = new Cesium.Material({  
    fabric: {  
        type: 'Grid', // 使用網(wǎng)格材質(zhì)類型  
        unlit: true // 不進(jìn)行光照計算,僅顯示碰撞器輪廓線  
    }  
});  
var boxPrimitive = new Cesium.Primitive({ // 創(chuàng)建碰撞器實體對象  
    geometryInstances: new Cesium.GeometryInstance({ // 定義碰撞器幾何體實例  
        geometry: boxGeometry, // 使用BoxGeometry作為幾何體類型  
        modelMatrix: modelMatrix, // 設(shè)置模型變換矩陣,使其與模型對齊  
        id: 'box' // 設(shè)置碰撞器標(biāo)識符,方便后續(xù)查找和識別碰撞事件  
    }),  
    asynchronous: false, // 是否異步加載碰撞器幾何體數(shù)據(jù),這里選擇同步加載以提高性能和效率  
    material: boxMaterial // 設(shè)置碰撞器材質(zhì)屬性,這里使用網(wǎng)格材質(zhì)類型顯示輪廓線效果  
});  
viewer.scene.primitives.add(boxPrimitive); // 將碰撞器添加到場景中顯示出來。

四:其他api實例

就寫幾個我用到的吧。
1.地理信息查詢
當(dāng)你想要查找某個地點的具體信息時,可以使用Cesium的地理信息查詢功能。例如,你可以通過經(jīng)緯度坐標(biāo)或地名來查詢相關(guān)的地理信息

viewer.geocoder.geocode({  
    text: '北京',  
    view: Cesium.ScreenSpaceEventType.LEFT_CLICK  
}).then(function(results) {  
    // 查詢成功,獲取查詢結(jié)果  
    var entity = results[0].entity;  
    console.log(entity); // 輸出查詢到的實體信息  
});

2.軌跡繪制
如果你想要在地圖上繪制軌跡,可以使用Cesium提供的軌跡繪制工具。通過定義一系列的經(jīng)緯度坐標(biāo),你可以輕松地繪制出軌跡。

// 定義軌跡的坐標(biāo)點數(shù)組  
var waypoints = [  
    Cesium.Cartesian3.fromDegrees(116.407, 39.904), // 北京  
    Cesium.Cartesian3.fromDegrees(121.473, 31.230), // 上海  
    Cesium.Cartesian3.fromDegrees(104.065, 30.574)  // 成都  
];  
  
// 創(chuàng)建軌跡實體  
var polyline = viewer.entities.add({  
    polyline: {  
        positions: waypoints,  
        width: 5,  
        material: Cesium.Color.RED,  
        leadTime: 0,  
        trailTime: 0  
    }  
});

定義一個包含經(jīng)緯度坐標(biāo)的數(shù)組waypoints,表示軌跡上的點。然后,我們使用viewer.entities.add()方法創(chuàng)建了一個紅色的軌跡實體,并將其添加到地圖上。通過調(diào)整width參數(shù)可以改變軌跡的寬度,而leadTime和trailTime參數(shù)則分別控制軌跡的前導(dǎo)和尾跡時間
3.地理編碼
如果你有一系列的地名或地址,并想要獲取其對應(yīng)的經(jīng)緯度坐標(biāo),可以使用Cesium的地理編碼功能。通過地理編碼,你可以將地址轉(zhuǎn)換為準(zhǔn)確的坐標(biāo)位置文章來源地址http://www.zghlxwxcb.cn/news/detail-854950.html

var viewer = new Cesium.Viewer('cesiumContainer');  
var encodedAddress = '北京市朝陽區(qū)'; // 需要地理編碼的地址或地名  
var request = {  
    address : encodedAddress, // 地址或地名字符串  
    resource : 'address' // 地理編碼資源類型,這里使用地址編碼資源類型(address)進(jìn)行示范。如果使用地名編碼資源類型(geocode),需要傳遞地名相關(guān)的參數(shù)。例如:{ name : '北京' }。此外,還可以選擇其他資源類型(例如:postalCode、intersection等)。具體可參考Cesium官方文檔。  
};  
viewer.geocoder.geocode(request).then(function(results) {  
    // 地理編碼成功,獲取地理編碼結(jié)果(包含經(jīng)緯度坐標(biāo)等)  
    var position = results[0].position; // 獲取第一個結(jié)果的經(jīng)緯度坐標(biāo)位置信息,返回一個Cesium.Cartesian3對象。如果有多于一個結(jié)果,可以根據(jù)實際需求進(jìn)行篩選或處理。例如:results[0].entity 等??梢詤⒖糃esium官方文檔了解更多關(guān)于地理編碼結(jié)果的信息。使用經(jīng)緯度坐標(biāo)信息進(jìn)行后續(xù)操作,例如:繪制標(biāo)記點、添加軌跡等。   
});

到了這里,關(guān)于前端使用Cesium加載三維模型全攻略的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • HackTheGame游戲全攻略

    HackTheGame游戲全攻略

    游戲鏈接 鏈接: 百度網(wǎng)盤 請輸入提取碼 提取碼:bu1w HackTheGame游戲的玩法: 您將扮演一個黑客的角色,接受各種各樣的任務(wù),在不被發(fā)現(xiàn)的情況下,使用一些工具入侵他人的電腦,服務(wù)器并完成竊取資料,粉碎文件,植入病毒等操作.您有一共有兩次機會,第三次被追蹤到的話,您就會被捕

    2024年02月05日
    瀏覽(43)
  • 新手搭建服裝小程序全攻略

    新手搭建服裝小程序全攻略

    隨著互聯(lián)網(wǎng)的快速發(fā)展,線上購物已經(jīng)成為了人們?nèi)粘I钪胁豢苫蛉钡囊徊糠?。服裝作為人們?nèi)粘OM的重要品類,線上化趨勢也日益明顯。本文將詳細(xì)介紹如何從零開始搭建一個服裝小程序商城,從入門到精通的捷徑,幫助你快速掌握小程序商城的制作方法和技巧。 首先

    2024年02月21日
    瀏覽(22)
  • Github搭建個人博客全攻略

    Github是開發(fā)者的代碼倉庫,一個開源和分享社區(qū)。 本文前提是已注冊github賬號。 假設(shè)用戶名為MyName 進(jìn)入個人主頁(https://github.com/用戶名),選擇Repositories,點擊New Repository name填入MyName.github.io,即MyName/ MyName.github.io ,點擊Create Repository 安裝Git或TortoiseGit(后者添加環(huán)境變量)

    2024年02月16日
    瀏覽(49)
  • 谷歌賬號注冊流程全攻略

    谷歌賬號注冊流程全攻略

    一、訪問谷歌賬號注冊頁面 首先,你需要訪問谷歌賬號注冊頁面。你可以直接點擊此鏈接,或者在谷歌首頁點擊右上角的“登錄”按鈕,在彈出的登錄框中點擊“創(chuàng)建帳號”。 在注冊頁面,你需要填寫以下個人信息: 名字:輸入你的名字。 姓氏:輸入你的姓氏。 用戶名:

    2024年02月05日
    瀏覽(22)
  • Jenkins 插件安裝方式全攻略

    Jenkins 插件安裝方式全攻略

    在Jenkins 的安裝向?qū)ы撁嬷校?會有一步是否安裝推薦的插件, 可以直接進(jìn)行安裝, 也可以跳過。 對于安裝機器聯(lián)網(wǎng)的狀況, 安裝插件相對方便,直接搜索插件安裝, 但是也可能會出現(xiàn)無法在線安裝的狀況, 原因解析及解決方法 參考: Jenkins 在Windows下插件無法安裝問題解

    2023年04月21日
    瀏覽(28)
  • kaggle免費服務(wù)器全攻略

    kaggle免費服務(wù)器全攻略

    1. kaggle服務(wù)器16G顯卡一周40小時. 所以我們直接干一堆谷歌賬號即可 2. 谷歌賬號的注冊: 我們需要FQcolab for windows可以做到. 然后我們注冊好賬號后.我們注冊4個賬號. 注冊方法. 打開chrome ? 點最下面的添加按鈕.然后一直下一步即可.無腦注冊. 3.? 為Chrome多賬戶添加單獨的快捷方

    2024年02月16日
    瀏覽(27)
  • 開發(fā)巴西市場全攻略,外貿(mào)人收藏

    開發(fā)巴西市場全攻略,外貿(mào)人收藏

    巴西聯(lián)邦共和國位于南美洲東部,是南美洲資源最豐富,經(jīng)濟(jì)活力和經(jīng)濟(jì)實力最強的國家。巴西作為拉丁美洲的出口大國,一直是一個比較有潛力的市場,亦是我國外貿(mào)公司和獨立外貿(mào)人集群的地方。 2021年巴西貿(mào)易概況 ? 1、2021年巴西貿(mào)易創(chuàng)紀(jì)錄 2021年,巴西的對外貿(mào)易以

    2024年02月05日
    瀏覽(26)
  • TortoiseSVN源碼安裝與遷移全攻略

    TortoiseSVN源碼安裝與遷移全攻略

    一、前言 隨著版本控制系統(tǒng)的普及,越來越多的開發(fā)者和團(tuán)隊開始使用SVN(Subversion)來管理代碼。本文將詳細(xì)介紹TortoiseSVN的源碼安裝及遷移過程,幫助您輕松掌握這一版本控制工具。 二、TortoiseSVN源碼安裝 依賴環(huán)境安裝,apr、apr-util、zlib、sqlite apr 環(huán)境?? apr-util 環(huán)境 zl

    2024年01月24日
    瀏覽(57)
  • SuperMap iObjects Docker打包全攻略

    SuperMap iObjects Docker打包全攻略

    說明 此教程編寫時使用的iObjects版本為 10.2.1 ,理論高版本同樣支持,具體自測。 基礎(chǔ)鏡像為 Docker 官方 ubuntu:16.04完整版 。(想換alpine自己折騰) 不同CPU架構(gòu)都需要 重新打包 Dockerfile以安裝相關(guān)LIB庫(本教程以x64為例) 容器內(nèi)部默認(rèn)使用超圖iObjects完整包內(nèi) 自帶的JRE (10

    2024年02月02日
    瀏覽(46)
  • 導(dǎo)出手機微信聊天記錄全攻略

    導(dǎo)出手機微信聊天記錄全攻略

    12-5 在我們?nèi)粘J褂梦⑿诺倪^程中,有時候很需要把聊天記錄導(dǎo)出到電腦的Excel表格中,或者導(dǎo)出到網(wǎng)頁中。 但是有個軟件叫【 微信聊天記錄挖掘機 】,可以把微信電腦版的聊天記錄導(dǎo)出,那在手機微信中的聊天記錄怎么辦呢? 其實微信本身就帶有遷移功能,只需要把手機

    2024年02月04日
    瀏覽(90)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包