999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ArcGIS Runtime模型三維姿態(tài)旋轉(zhuǎn)變換的研究

2019-08-19 03:59:28
福建質(zhì)量管理 2019年15期
關(guān)鍵詞:機(jī)制模型

(成都理工大學(xué) 四川 成都 610059)

引言

ArcGIS Runtime 是ESRI公司開(kāi)發(fā)的二次開(kāi)發(fā)包,可構(gòu)建本地應(yīng)用程序并將其部署到各種流行的平臺(tái)和設(shè)備中。為原生應(yīng)用添加強(qiáng)大的空間功能,并使應(yīng)用用戶能夠執(zhí)行所有GIS。三維坐標(biāo)轉(zhuǎn)換一直是測(cè)量領(lǐng)域的一個(gè)重要內(nèi)容[1],在圖形學(xué)中,三維建模技術(shù)提供了很多必要的方法用來(lái)將現(xiàn)實(shí)世界中的物體轉(zhuǎn)化為三維坐標(biāo)系下的數(shù)學(xué)表達(dá)形式,并通過(guò)計(jì)算機(jī)程序進(jìn)行渲染,從而實(shí)現(xiàn)在虛擬空間中模擬真實(shí)世界的效果[2]。三維坐標(biāo)轉(zhuǎn)換中最重要是坐標(biāo)轉(zhuǎn)換參數(shù)的求解。坐標(biāo)轉(zhuǎn)換參數(shù)分為旋轉(zhuǎn)、平移和尺度參數(shù),其中旋轉(zhuǎn)參數(shù)的確定是坐標(biāo)轉(zhuǎn)換的核心[3]。本文將通過(guò)控制變量的方法進(jìn)行觀察ArcGIS Runtime的旋轉(zhuǎn)現(xiàn)象,并通過(guò)該現(xiàn)象推導(dǎo)出ArcGIS Runtime的旋轉(zhuǎn)機(jī)制,計(jì)算出該旋轉(zhuǎn)機(jī)制的旋轉(zhuǎn)矩陣,然后進(jìn)行不同旋轉(zhuǎn)機(jī)制旋轉(zhuǎn)角的解算,最后驗(yàn)證成果。

一、三維模型旋轉(zhuǎn)機(jī)制的確定

本文實(shí)例三維模型為電塔模型,該模型是由多個(gè)組件模型通過(guò)三維空間旋轉(zhuǎn)角和坐標(biāo)定位定姿態(tài)組合而來(lái),旋轉(zhuǎn)角及坐標(biāo)都存儲(chǔ)在renderALL.db數(shù)據(jù)庫(kù)中,該模型的旋轉(zhuǎn)機(jī)制如下:

1.繞Heading軸旋轉(zhuǎn)Rotate_z,用于確定模型側(cè)身角度。

圖1 繞Heading軸旋轉(zhuǎn)Rotate_z

2.繞Roll軸旋轉(zhuǎn)Rotate_x,用于確定模型俯仰角度。

圖2 繞Roll軸旋轉(zhuǎn)Rotate_x

3.繞Heading軸旋轉(zhuǎn)Rotate_y,第二次繞Heading軸旋轉(zhuǎn)弧度值,用于確定模型的指向方向。

圖3 繞Heading軸旋轉(zhuǎn)Rotate_y

4.從以上描述可以看出該模型的旋轉(zhuǎn)機(jī)制是Heading-Roll-Heading的不帶軸旋轉(zhuǎn)。

二、ArcGIS Runtime三維姿態(tài)旋轉(zhuǎn)機(jī)制的確定

(一)技術(shù)路線

圖4 技術(shù)路線

首先通過(guò)對(duì)模型的轉(zhuǎn)動(dòng)進(jìn)行其轉(zhuǎn)動(dòng)軸方向的確定,然后對(duì)是否帶動(dòng)其他軸的待測(cè)軸進(jìn)行轉(zhuǎn)動(dòng),轉(zhuǎn)動(dòng)到適當(dāng)?shù)慕嵌群?,再?duì)其他軸進(jìn)行轉(zhuǎn)動(dòng)并比較觀察此時(shí)其他軸是否與模型初始的轉(zhuǎn)動(dòng)軸一致。從而得出軸旋轉(zhuǎn)的帶動(dòng)情況,最后分析解釋現(xiàn)象得出結(jié)論。

(二)旋轉(zhuǎn)現(xiàn)象的觀察

直接給Heading,Picth,Roll賦值,進(jìn)而測(cè)試旋轉(zhuǎn)軸的帶動(dòng)情況。

通過(guò)對(duì)模型進(jìn)行測(cè)試轉(zhuǎn)動(dòng),得到以下成果:

圖5 ArcGIS Runtime中三個(gè)轉(zhuǎn)動(dòng)軸

(其中黃色軸為Heading軸,紅色軸為Pitch軸,橙色軸為Roll軸)

Figure5ThreeRotatingaxesinArcGISRuntime

(The yellow axis is the Heading axis,the red axis is the Pitch axis,and the orange axis is the Roll axis)

圖6 Pitch軸的旋轉(zhuǎn)不帶動(dòng)Heading軸

圖7 Pitch軸的旋轉(zhuǎn)帶動(dòng)Roll軸

圖8 Roll軸的旋轉(zhuǎn)不帶動(dòng)Heading軸

圖9 Roll軸的旋轉(zhuǎn)不帶動(dòng)Pitch軸

圖10 Heading軸的旋轉(zhuǎn)帶動(dòng)Pitch軸

圖11 Heading軸的旋轉(zhuǎn)帶動(dòng)Roll軸

圖中白線旋轉(zhuǎn)軸為被帶動(dòng)后的旋轉(zhuǎn)軸,其他顏色旋轉(zhuǎn)軸與初始旋轉(zhuǎn)軸一致。利用此方法觀察ArcGIS Runtime的模型旋轉(zhuǎn),現(xiàn)象總結(jié)如下:

表一 ArcGIS Runtime中旋轉(zhuǎn)軸的帶動(dòng)現(xiàn)象

(三)旋轉(zhuǎn)現(xiàn)象的解釋和旋轉(zhuǎn)機(jī)制的確定

但ArcGIS Runtime的模型旋轉(zhuǎn)并非如此復(fù)雜,當(dāng)Pitch,Roll,Heading任意一個(gè)的值發(fā)生改變時(shí),并不是基于上次的空間姿態(tài)改變相應(yīng)的角度,而是計(jì)算機(jī)重新通過(guò)獲取到的三個(gè)旋轉(zhuǎn)角度進(jìn)行計(jì)算空間姿態(tài)。通過(guò)上面的旋轉(zhuǎn)現(xiàn)象可以看出,ArcGIS Runtime的旋轉(zhuǎn)機(jī)制是帶軸旋轉(zhuǎn)的,在旋轉(zhuǎn)的順序上,后面軸的旋轉(zhuǎn)是不會(huì)影響前面的旋轉(zhuǎn)的,而現(xiàn)象中出現(xiàn)的不帶軸的情況是因?yàn)樵撦S在旋轉(zhuǎn)順序的后面,導(dǎo)致每次改變處于順序后面的旋轉(zhuǎn)角度時(shí),計(jì)算機(jī)都會(huì)重新通過(guò)旋轉(zhuǎn)順序計(jì)算模型空間姿態(tài),處于順序前面的旋轉(zhuǎn)角度沒(méi)有改變,因此后面的旋轉(zhuǎn)軸與以前的一致,當(dāng)計(jì)算到順序后面的軸旋轉(zhuǎn)時(shí),由于順序前面的軸已經(jīng)旋轉(zhuǎn)過(guò)了,而后面也沒(méi)有該軸的旋轉(zhuǎn),因此造成了后面的旋轉(zhuǎn)沒(méi)有帶動(dòng)處于旋轉(zhuǎn)順序前面的軸旋轉(zhuǎn)的假象,因此可以得出結(jié)論有不帶軸旋轉(zhuǎn)假象的旋轉(zhuǎn)處于旋轉(zhuǎn)順序的后面,由此結(jié)論及該現(xiàn)象便可以推論出ArcGIS Runtime的旋轉(zhuǎn)機(jī)制是Heading - Pitch - Roll順序的帶軸旋轉(zhuǎn)。

在旋轉(zhuǎn)順序上,順序后面的軸旋轉(zhuǎn)將不會(huì)影響順序前面軸的旋轉(zhuǎn),而順序前面的軸旋轉(zhuǎn)會(huì)帶動(dòng)后面旋轉(zhuǎn)的旋轉(zhuǎn)軸。當(dāng)逆順序的不帶軸旋轉(zhuǎn)時(shí),由于是不帶軸旋轉(zhuǎn),因此順序前面的軸旋轉(zhuǎn)不會(huì)影響順序后面的軸旋轉(zhuǎn),此時(shí)討論順序后面的軸旋轉(zhuǎn)是否帶動(dòng)順序前面的軸也已經(jīng)沒(méi)有意義了,因?yàn)閹Р粠?dòng)都不會(huì)影響順序后面的旋轉(zhuǎn),正順序的帶軸旋轉(zhuǎn),順序后面的軸旋轉(zhuǎn)不會(huì)影響順序前面的軸旋轉(zhuǎn),因此,兩者影響順序后面旋轉(zhuǎn)的旋轉(zhuǎn)軸帶動(dòng)情況是一致的,當(dāng)對(duì)應(yīng)軸的旋轉(zhuǎn)角度一致時(shí),兩種旋轉(zhuǎn)方法也將會(huì)達(dá)到一樣的效果。因此可以得出結(jié)論,逆順序的不帶軸旋轉(zhuǎn)效果等同于帶軸旋轉(zhuǎn),這也為后面的旋轉(zhuǎn)角矩陣解算提供了支撐。

就以ArcGIS Runtime的旋轉(zhuǎn)機(jī)制為例,當(dāng)逆順序不帶軸旋轉(zhuǎn)時(shí),Roll軸的旋轉(zhuǎn)不帶其他軸。Pitch軸的旋轉(zhuǎn),首先不會(huì)帶動(dòng)Heading軸,而Roll軸順序上在Pitch軸前面,因此Pitch軸會(huì)不會(huì)被帶動(dòng)已經(jīng)沒(méi)有意義了(實(shí)際上是帶動(dòng)的),因?yàn)椴粫?huì)影響后面的旋轉(zhuǎn),而這里為了方便比較就記為Pitch的旋轉(zhuǎn)帶動(dòng)了Roll,而最后的Heading軸更是如此,會(huì)不會(huì)帶動(dòng)其他軸已經(jīng)沒(méi)有意義了,為了方便比較同樣記為帶動(dòng)了Pitch軸和Roll軸,由此可以看出現(xiàn)象:

表二 逆順序的不帶軸旋轉(zhuǎn)旋轉(zhuǎn)軸的帶動(dòng)現(xiàn)象

該現(xiàn)象與ArcGIS Runtime的旋轉(zhuǎn)現(xiàn)象一致,當(dāng)對(duì)應(yīng)軸的旋轉(zhuǎn)角度一致時(shí),兩種旋轉(zhuǎn)機(jī)制效果等同。

三、不同旋轉(zhuǎn)機(jī)制旋轉(zhuǎn)角的相互轉(zhuǎn)換

(一)旋轉(zhuǎn)矩陣

坐標(biāo)變換,利用歐拉角描述一次平面旋轉(zhuǎn),見(jiàn)圖12。

圖12 坐標(biāo)系間的變換關(guān)系

設(shè)坐標(biāo)系繞O點(diǎn)旋轉(zhuǎn)θ角后得到坐標(biāo)系X′ OY′,空間中有一矢量OP在坐標(biāo)系XOY中的坐標(biāo)為r1,在坐標(biāo)系X′OY′中坐標(biāo)為r2,Z坐標(biāo)未變,即有[4]:

(1)

r2=R*r1

旋轉(zhuǎn)矩陣是由9個(gè)元素組成的3×3的正交矩陣[5]。假設(shè)繞著Heading,Pitch,Roll旋轉(zhuǎn)的角度為z,x,y,以此類(lèi)推,則空間的三個(gè)旋轉(zhuǎn)矩陣如下:

(2)

(二)旋轉(zhuǎn)矩陣的左乘與右乘

空間的旋轉(zhuǎn)矩陣是由多個(gè)單次旋轉(zhuǎn)組成。如果第二次及以后的旋轉(zhuǎn)是相對(duì)于基礎(chǔ)坐標(biāo)系來(lái)做的,則第二個(gè)及以后的旋轉(zhuǎn)矩陣左乘之前的旋轉(zhuǎn)矩陣。

如果第二次及以后的旋轉(zhuǎn)矩陣是相對(duì)于前一次旋轉(zhuǎn)后帶動(dòng)的坐標(biāo)系,則第二次及以后的旋轉(zhuǎn)矩陣右乘之前的旋轉(zhuǎn)矩陣[6]。

而ArcGIS Runtime的旋轉(zhuǎn)是帶軸旋轉(zhuǎn)的,因此旋轉(zhuǎn)矩陣的組合是矩陣的右乘,假設(shè)在ArcGIS Runtime中繞著Heading,Pitch,Roll旋轉(zhuǎn)的角度為z,x,y,則ArcGIS Runtime旋轉(zhuǎn)矩陣為RHeading(z)RPitch(x)RRoll(y)。

(三)不同旋轉(zhuǎn)機(jī)制旋轉(zhuǎn)角的解算

ArcGIS Runtime的旋轉(zhuǎn)矩陣是:

R11=cos y cos z-sin y sin x sin z

R12=-sin z cos x

R13=sin y cos z+cos y sin z sin x

R21=cos y sin z+sin y sin x cos z

R22=cos x cos z

(3)

R23=sin z sin y-sin x cos z cos y

R31=-sin y cos z

R32=sin x

R33=cos y cos x

從上列等式可以導(dǎo)出x,y,z的角度,公式如下:

y=arctan2(-R13,R33);

(4)

z=arctan2(-R21,R22)

這樣便可以將任意的旋轉(zhuǎn)機(jī)制的旋轉(zhuǎn)角轉(zhuǎn)換為ArcGIS Runtime旋轉(zhuǎn)機(jī)制的旋轉(zhuǎn)角了。假設(shè)電塔模型旋轉(zhuǎn)機(jī)制的旋轉(zhuǎn)角分別為Rotate_z,Rotate_x,Rotate_y,由于是不帶軸旋轉(zhuǎn),旋轉(zhuǎn)矩陣的組合是矩陣的左乘,而帶軸旋轉(zhuǎn)與不帶軸旋轉(zhuǎn)的相互轉(zhuǎn)換是逆順序旋轉(zhuǎn)即可,因此該旋轉(zhuǎn)矩陣如下:

P11=cos(Rotate_z)cos(Rotate_x)cos(Rotate_y)-sin(Rotate_z)sin(Rotate_y)

P12=-cos(Rotate_z)cos(Rotate_x)sin(Rotate_y)-sin(Rotate_z)cos(Rotate_y)

P13=cos(Rotate_z)cos(Rotate_x)

(5)

P21=sin(Rotate_z)cos(Rotate_x)cos(Rotate_y)+cos(Rotate_z)sin(Rotate_y)

P22=-sin(Rotate_z)cos(Rotate_x)sin(Rotate_y)+cos(Rotate_z)cos(Rotate_y)

P23=sin(Rotate_z)sin(Rotate_x)

P31=-sin(Rotate_x)cos(Rotate_y)

P32=sin(Rotate_x)sin(Rotate_y)

P33=cos(Rotate_x)

兩個(gè)旋轉(zhuǎn)矩陣都是使同一個(gè)初始姿態(tài)到同一個(gè)目標(biāo)姿態(tài),因此令R=P;則有:

y=arctan2(-P13,P33);

(6)

z=arctan2(-P21,P22)

由此可得由電塔的旋轉(zhuǎn)機(jī)制的旋轉(zhuǎn)角推導(dǎo)出ArcGIS Runtime旋轉(zhuǎn)機(jī)制的旋轉(zhuǎn)角。

通過(guò)該公式編寫(xiě)程序進(jìn)行成果測(cè)試。

通過(guò)測(cè)試,無(wú)論當(dāng)前是怎樣的姿態(tài),當(dāng)轉(zhuǎn)動(dòng)三個(gè)旋轉(zhuǎn)軸來(lái)改變Rotate_z,Rotate_x,Rotate_y的值時(shí),在ArcGIS Runtime中剛好和塔模型旋轉(zhuǎn)機(jī)制中的側(cè)身,俯仰和指向相對(duì)應(yīng),通過(guò)這樣的算法,將ArcGIS Runtime的旋轉(zhuǎn)機(jī)制轉(zhuǎn)化為了塔模型的旋轉(zhuǎn)機(jī)制。這也說(shuō)明了該公式和方法的正確性。

結(jié)語(yǔ)

三維模型姿態(tài)變換是三維模型應(yīng)用領(lǐng)域的重要基礎(chǔ)技術(shù),隨著三維模型在各行各業(yè)中的廣泛應(yīng)用,三維模型姿態(tài)變換技術(shù)也得到了飛速的發(fā)展[7]。而對(duì)于ArcGIS Runtime而言,三維模型姿態(tài)變換也影響用戶的直觀體驗(yàn),模型的精準(zhǔn)定位定姿態(tài)是三維應(yīng)用最基本的保證。本文不僅給出了ArcGIS Runtime的旋轉(zhuǎn)機(jī)制和不同旋轉(zhuǎn)機(jī)制的旋轉(zhuǎn)角轉(zhuǎn)換,更是提供了觀察旋轉(zhuǎn)機(jī)制和不同旋轉(zhuǎn)機(jī)制的旋轉(zhuǎn)角轉(zhuǎn)換的解算方法,這為更多的三維GIS開(kāi)發(fā)者提供了支撐。

猜你喜歡
機(jī)制模型
一半模型
構(gòu)建“不敢腐、不能腐、不想腐”機(jī)制的思考
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
自制力是一種很好的篩選機(jī)制
文苑(2018年21期)2018-11-09 01:23:06
定向培養(yǎng) 還需完善安置機(jī)制
3D打印中的模型分割與打包
破除舊機(jī)制要分步推進(jìn)
FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
注重機(jī)制的相互配合
主站蜘蛛池模板: 亚洲成人免费看| 日韩无码视频网站| 91人妻日韩人妻无码专区精品| 伊人激情综合网| 亚洲男人天堂2020| 国产一级裸网站| 71pao成人国产永久免费视频| 青青网在线国产| 26uuu国产精品视频| 影音先锋丝袜制服| 国产精品一老牛影视频| 成年人福利视频| 女人av社区男人的天堂| 国产日韩欧美成人| 国产精品白浆无码流出在线看| 久久亚洲黄色视频| 国产成人盗摄精品| 九九这里只有精品视频| 自偷自拍三级全三级视频 | 四虎综合网| www成人国产在线观看网站| 嫩草影院在线观看精品视频| 九九免费观看全部免费视频| 四虎永久免费地址| 国产精品一区在线麻豆| 欧美精品另类| 国产在线专区| 一区二区偷拍美女撒尿视频| 欧美 国产 人人视频| 欧美色丁香| 久久久久青草大香线综合精品| 在线观看国产精品一区| 99在线观看国产| 国产激爽大片在线播放| 午夜人性色福利无码视频在线观看| 在线观看免费AV网| 91综合色区亚洲熟妇p| 欧美不卡二区| 综合色在线| 国产内射一区亚洲| 亚洲第一成人在线| 亚洲视频黄| 色屁屁一区二区三区视频国产| 毛片在线看网站| 久久黄色视频影| 国产日韩精品欧美一区喷| 久久www视频| 狠狠色成人综合首页| 国产精品流白浆在线观看| 制服丝袜在线视频香蕉| 999精品在线视频| 久久久成年黄色视频| 中文字幕中文字字幕码一二区| 精品久久蜜桃| 91麻豆精品国产91久久久久| 色综合久久综合网| 青青国产成人免费精品视频| 国产精品亚洲片在线va| 国产欧美日韩在线在线不卡视频| 巨熟乳波霸若妻中文观看免费 | 国产色偷丝袜婷婷无码麻豆制服| 国产乱人乱偷精品视频a人人澡| 高清欧美性猛交XXXX黑人猛交 | 午夜精品久久久久久久无码软件| 国产日韩欧美视频| 国产精品免费p区| 国产又黄又硬又粗| 亚洲日韩AV无码一区二区三区人| 久久婷婷综合色一区二区| 欧美一级在线看| 国产永久在线观看| 国产福利小视频高清在线观看| 亚洲视频在线青青| 无码中文AⅤ在线观看| 国产精品亚洲日韩AⅤ在线观看| 园内精品自拍视频在线播放| 97国产精品视频人人做人人爱| 97精品伊人久久大香线蕉| 久久青草免费91观看| 精品福利国产| 伊人激情综合网| 91福利免费|