cesium pick和射線的使用(工具篇)

一,ray(射線)的使用

cesium里的射線用得比較廣泛,很多拾取功能需要根據(jù)射線來進(jìn)行攝取,像“視線分析”,“通透率”等功能都可以用射線來做。cesium里根據(jù)一個(gè)原點(diǎn)+方向就可以做一條指向某個(gè)方向的射線。

cesium射線的構(gòu)造類

常用的幾種射線

1.沿著x軸方向的射線

2.沿著y軸方向是射線

3.垂直射線(沿著z軸方向的射線)

4.相機(jī)位置和屏幕坐標(biāo)的連線做射線

5.相機(jī)位置和相機(jī)方向做射線

6.任意兩個(gè)點(diǎn)A和點(diǎn)B,以A做原點(diǎn)做A指向B的射線

代碼鏈接常用的幾種射線

二,pick的使用

在Cesium中會(huì)看到很多pick,包括Scene,Camera,Glober,Picking里,接下來我們一一介紹

Scene里的pick方法

pick(windowPosition,?width,?height) 通過屏幕位置拾取,會(huì)返回拾取到的第一個(gè)“primitive”。width,height分別為拾取矩陣的長(zhǎng)寬

drillPick (windowPosition,?limit,?width,?height) 通過鼠標(biāo)位置批量拾取對(duì)象

drillPickFromRay(ray,limit,objectsToExclude,width) 通過射線批量拾取

drillPickFromRayMostDetailed(ray,limit,objectsToExclude,width) 異步通過射線批量拾取

pickPositionWorldCoordinates(?windowPosition,result) 通過屏幕位置拾取對(duì)應(yīng)的世界坐標(biāo)位置

pickPosition(?windowPosition,result) 拾取屏幕位置對(duì)應(yīng)的世界坐標(biāo)位置

pickFromRay(ray,?objectsToExclude,?width) 通過射線拾取相交的第一個(gè)對(duì)象,返回對(duì)象和相交位置。這個(gè)方法只能拾取已經(jīng)渲染好了的glober tiles和 3d tiles,無論它們可見與否

pickFromRayMostDetailed(ray,?objectsToExclude,?width) 支持異步拾取,和pickFromRay效果差不多

sampleHeight(position,?objectsToExclude,?width) 通過給定經(jīng)緯度坐標(biāo)返回拾取對(duì)象的高度信息,可用于glober,3dtiles等

clampToHeight(cartesian,objectsToExclude,width,result)通過給定的世界坐標(biāo)返回物體表面的位置

sampleHeightMostDetailed(position,?objectsToExclude,?width) 異步通過給定經(jīng)緯度坐標(biāo)返回拾取對(duì)象的高度信息,可用于glober,3dtiles等

clampToHeightMostDetailed(cartesian,objectsToExclude,width,result)異步通過給定的世界坐標(biāo)返回物體表面的位置

Camera里的pick方法

pickEllipsoid(windowPosition,?ellipsoid,?result) 根據(jù)相機(jī)位置和屏幕坐標(biāo)拾取位于地球上的點(diǎn)

Globe里的pick方法

pickWorldCoordinates(ray,scene,cullBackFaces,result) 通過射線拾取地球上的坐標(biāo)

pick(ray,?scene,?result)通過射線拾取地球上的坐標(biāo),內(nèi)部調(diào)用了pickWorldCoordinates方法,但在不是3D場(chǎng)景時(shí)候做了坐標(biāo)轉(zhuǎn)換處理

Picking里的pick方法,Picking里的方法一般是集成到Scene,Camera,Glober里面了,Picking相當(dāng)于基類

pick(scene,?windowPosition,?width,?height) 通過屏幕坐標(biāo)位置拾,會(huì)返回拾取到的第一個(gè)“primitive”。width,height分別為拾取矩陣的長(zhǎng)寬。Scene里的pick方法正是調(diào)用的Picking

里的pick方法

pickPositionWorldCoordinates(scene,windowPosition,result)通過屏幕位置拾取對(duì)應(yīng)的世界坐標(biāo)位置,在Scene里面也被調(diào)用了

pickPosition( scne,windowPosition,result) 拾取屏幕位置對(duì)應(yīng)的世界坐標(biāo)位置,在Scene里面也被調(diào)用了

drillPick(scne,windowPosition,?limit,?width,?height) 通過鼠標(biāo)位置批量拾取對(duì)象,在Scene里面也被調(diào)用了

pickFromRay(scne,ray,?objectsToExclude,?width) 通過射線拾取相交的第一個(gè)對(duì)象,返回對(duì)象和相交位置。這個(gè)方法只能拾取已經(jīng)渲染好了的glober tiles和 3d tiles,無論它們可見與否

drillPickFromRay(scne,ray,limit,objectsToExclude,width) 通過射線批量拾取

pickFromRayMostDetailed(scne,ray,?objectsToExclude,?width) 支持異步拾取,和pickFromRay效果差不多

drillPickFromRayMostDetailed(scne,ray,limit,objectsToExclude,width) 異步通過射線批量拾取

sampleHeight(scne,?position,?objectsToExclude,?width) 通過給定經(jīng)緯度坐標(biāo)返回拾取對(duì)象的高度信息,可用于glober,3dtiles等

clampToHeight(scne,cartesian,objectsToExclude,width,result)通過給定的世界坐標(biāo)返回物體表面的位置

sampleHeightMostDetailed(scne,?position,?objectsToExclude,?width) 異步通過給定經(jīng)緯度坐標(biāo)返回拾取對(duì)象的高度信息,可用于glober,3dtiles等

clampToHeightMostDetailed(scne,cartesian,objectsToExclude,width,result)異步通過給定的世界坐標(biāo)返回物體表面的位置

ImageryLayerCollection 里的pick方法

pickImageryLayerFeatures(ray,scene) 通過射線拾取feature

代碼鏈接cesium pick方法匯總

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 介紹 人類天生具有創(chuàng)造力。我們不斷設(shè)計(jì)和構(gòu)建新穎,實(shí)用和有趣的東西。在現(xiàn)代,我們編寫軟件來協(xié)助設(shè)計(jì)和創(chuàng)作過程...
    博士倫2014閱讀 1,287評(píng)論 0 1
  • 這是500Lines項(xiàng)目中的A 3D modeller文章的翻譯版,講述如何使用Python,OpenGL,GLU...
    今天又忘記密碼閱讀 1,336評(píng)論 0 2
  • 此文章為本人方便查找使用ThingJsAPI的個(gè)人總結(jié),原創(chuàng)API請(qǐng)查看ThingJs官網(wǎng)http://www.t...
    愛吃香菜的憨憨閱讀 15,186評(píng)論 1 5
  • 在我們的游戲開發(fā)過程中,有一個(gè)很重要的工作就是進(jìn)行碰撞檢測(cè)。例如在射擊游戲中子彈是否擊中敵人,在RPG游戲中是否撿...
    壹米玖坤閱讀 24,832評(píng)論 0 17
  • 本文來源于兩年前我的一篇CSDN博客。CSDN博客本來就沒寫多少,現(xiàn)在也基本是到簡(jiǎn)書上混了。所以各位大大請(qǐng)自覺繞過...
    曉夢(mèng)蟬君閱讀 42,928評(píng)論 5 12

友情鏈接更多精彩內(nèi)容