女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁(yè) > > FPGA算法工程師


三維空間直角坐標(biāo)系的平移變換

文章的開頭,還是先講講坐標(biāo)系的平移變換,平移變換的過(guò)程如下圖所示:

假設(shè)點(diǎn)P是空間中的任意一點(diǎn),其在XYZ坐標(biāo)系中的坐標(biāo)為(x, y, z)。現(xiàn)在點(diǎn)P不動(dòng),我們將XYZ坐標(biāo)系做一個(gè)平移的操作,把XYZ平移到X′Y′Z′的位置,O′是平移后的坐標(biāo)的原點(diǎn),要注意的是,O′在XYZ中的坐標(biāo)為(x0, y0, z0)。點(diǎn)P在XYZ坐標(biāo)系中的坐標(biāo)為(x, y, z),點(diǎn)P在平移后的坐標(biāo)系X′Y′Z′中的坐標(biāo)為(x′, y′, z′)。根據(jù)上面這個(gè)示意圖,聰明的你一下就可以發(fā)現(xiàn):

通過(guò)上面的式子,我們可以求解出點(diǎn)P在X′Y′Z′坐標(biāo)系中的坐標(biāo)為:

把上面的式子轉(zhuǎn)換成矩陣的形式就是:

這就是三維空間直角坐標(biāo)系的平移變換了。

三維空間直角坐標(biāo)系的旋轉(zhuǎn)變換

下面我們來(lái)看看維空間直角坐標(biāo)系的旋轉(zhuǎn)變換,小D最開始在研究旋轉(zhuǎn)變換的時(shí)候,只推導(dǎo)了右手坐標(biāo)系的旋轉(zhuǎn)變換。有一次看到了一篇文獻(xiàn),它用的是左手坐標(biāo)系,但小D對(duì)文獻(xiàn)中給出的公式的正確性感到懷疑,而我們要在代碼中用到相關(guān)的坐標(biāo)轉(zhuǎn)換,這意味著我們需要知道左手坐標(biāo)系旋轉(zhuǎn)矩陣的正確表達(dá)式,所以小D又把左手坐標(biāo)系的旋轉(zhuǎn)矩陣推導(dǎo)了一遍。

右手坐標(biāo)系的旋轉(zhuǎn)變換

右手坐標(biāo)系的旋轉(zhuǎn)過(guò)程有三個(gè),分別是繞X,Y,Z軸旋轉(zhuǎn),右手坐標(biāo)系在旋轉(zhuǎn)時(shí),通常規(guī)定以逆時(shí)針旋轉(zhuǎn)方向?yàn)檎较颉?/span>

①XYZ右手坐標(biāo)系繞X軸逆時(shí)針旋轉(zhuǎn)θ角

來(lái)推導(dǎo)右手坐標(biāo)系繞X軸旋轉(zhuǎn)的旋轉(zhuǎn)矩陣,這個(gè)過(guò)程可以用下面這個(gè)示意圖表示:

假設(shè)P點(diǎn)為空間中任意一點(diǎn),為了便于觀察與推導(dǎo),我們將P點(diǎn)放在YOZ平面內(nèi)。P點(diǎn)在空間中保持不動(dòng),XYZ坐標(biāo)系繞X軸逆時(shí)針旋轉(zhuǎn)θ形成新的坐標(biāo)系X′Y′Z′,P點(diǎn)在XYZ中的坐標(biāo)為(x, y, z),P點(diǎn)在X′Y′Z′中的坐標(biāo)為(x′, y′, z′),現(xiàn)在我們已知(x, y, z)、旋轉(zhuǎn)角度θ和(x′, y′, z′),求旋轉(zhuǎn)矩陣Rx。在推導(dǎo)的過(guò)程中,我們還要假設(shè)一個(gè)變量,就是點(diǎn)P相對(duì)于Y軸正方向逆時(shí)針的夾角為φ。

很明顯,點(diǎn)P在XYZ坐標(biāo)系中的Y,Z軸坐標(biāo)可以表示為:

點(diǎn)P在X′Y′Z′坐標(biāo)系中Y′,Z′軸坐標(biāo)為:

把x,y帶入x′,y′中,同時(shí)P點(diǎn)在XYZ中X軸坐標(biāo)與其在X′Y′Z′坐標(biāo)系中的X′軸坐標(biāo)是相等的,所以有:

把這個(gè)表達(dá)式表示成矩陣相乘的形式為:

上面的Rx就是XYZ右手坐標(biāo)系繞X軸逆時(shí)針旋轉(zhuǎn)θ角,空間中的點(diǎn)從XYZ坐標(biāo)系變換到X′Y′Z′坐標(biāo)系的旋轉(zhuǎn)矩陣,Rx的表達(dá)式為:

②XYZ右手坐標(biāo)系繞Y軸逆時(shí)針旋轉(zhuǎn)θ角

有了前面的推導(dǎo)過(guò)程,XYZ右手坐標(biāo)系繞Y軸逆時(shí)針旋轉(zhuǎn)θ角的旋轉(zhuǎn)矩陣的推導(dǎo)就一葫蘆畫瓢了。旋轉(zhuǎn)過(guò)程如下圖所示:

點(diǎn)P在XYZ右手坐標(biāo)系中的X,Z軸坐標(biāo)為:

點(diǎn)P在X′Y′Z′坐標(biāo)系中的X,Z軸坐標(biāo)為:

把x,z帶入x′,z′中,同時(shí)P點(diǎn)在XYZ中的Y軸坐標(biāo)與X′Y′Z′坐標(biāo)系中的Y′軸坐標(biāo)是相等的,所以有:

寫成矩陣相乘的形式:

所以,XYZ右手坐標(biāo)系繞Y軸逆時(shí)針旋轉(zhuǎn)θ角的旋轉(zhuǎn)矩陣Ry為:

XYZ右手坐標(biāo)系繞Z軸逆時(shí)針旋轉(zhuǎn)θ角

XYZ右手坐標(biāo)系繞Z軸逆時(shí)針旋轉(zhuǎn)θ的過(guò)程如下圖所示:

點(diǎn)P在XYZ右手坐標(biāo)系中的X,Y軸坐標(biāo)為:

點(diǎn)P在X′Y′Z′坐標(biāo)系中的x,y坐標(biāo)為:

把x,y帶入x′,y′中,同時(shí)P點(diǎn)在XYZ中的Z軸坐標(biāo)與其在X′Y′Z′坐標(biāo)系中的Z′軸坐標(biāo)是相等的,所以有:

寫成矩陣相乘的形式:

所以,XYZ右手坐標(biāo)系繞Z軸逆時(shí)針旋轉(zhuǎn)θ角的旋轉(zhuǎn)矩陣Rz為:

左手坐標(biāo)系的旋轉(zhuǎn)變換

左手坐標(biāo)系的旋轉(zhuǎn)過(guò)程也是三個(gè),分別是繞X,Y,Z軸旋轉(zhuǎn),左手坐標(biāo)系在旋轉(zhuǎn)時(shí),通常規(guī)定以順時(shí)針旋轉(zhuǎn)方向?yàn)檎较颉?/span>

①XYZ左手坐標(biāo)系繞X軸順時(shí)針旋轉(zhuǎn)θ角

XYZ左手坐標(biāo)系繞X軸順時(shí)針旋轉(zhuǎn)θ角的過(guò)程示意圖如下所示:

上圖中,點(diǎn)P為空間中任意一點(diǎn),點(diǎn)P保持不動(dòng),XYZ左手坐標(biāo)系繞X軸順時(shí)針旋轉(zhuǎn)θ角形成新的坐標(biāo)系X′Y′Z′。已知點(diǎn)P在XYZ坐標(biāo)系中的坐標(biāo)為(x,y,z),點(diǎn)P在X′Y′Z′中的坐標(biāo)為(x′,y′,z′),我們要求的是XYZ坐標(biāo)系變換到X′Y′Z′坐標(biāo)系這個(gè)過(guò)程中的旋轉(zhuǎn)矩陣。

從圖中可以看出,點(diǎn)P在XYZ坐標(biāo)系中的Y,Z軸坐標(biāo)為:

點(diǎn)P在X′Y′Z′坐標(biāo)系中的Y,Z軸坐標(biāo)為:

y,z帶入y′,z′中,同時(shí)P點(diǎn)在XYZ中的X軸坐標(biāo)與其在X′Y′Z′中的X′軸坐標(biāo)是相等的,所以有:

寫成矩陣相乘的形式:

所以,XYZ左手坐標(biāo)系繞X軸順時(shí)針旋轉(zhuǎn)θ角的旋轉(zhuǎn)矩陣為:

XYZ左手坐標(biāo)系繞Y軸順時(shí)針旋轉(zhuǎn)θ角

XYZ左手坐標(biāo)系繞Y軸順時(shí)針旋轉(zhuǎn)θ角形成X′Y′Z′坐標(biāo)系,其過(guò)程示意圖如下所示:

點(diǎn)P在XYZ坐標(biāo)系中的X,Z軸坐標(biāo)為:

點(diǎn)P在X′Y′Z′坐標(biāo)系中的X,Z軸坐標(biāo)為:

把x,z帶入x′,z′中,同時(shí)P點(diǎn)在XYZ中的Y軸坐標(biāo)與其在X′Y′Z′坐標(biāo)系中的Y′軸坐標(biāo)是相等的,所以有:

以矩陣形式表示為:

所以,XYZ左手坐標(biāo)系繞Y軸時(shí)針旋轉(zhuǎn)θ角的旋轉(zhuǎn)矩陣Ry為:

③XYZ左手坐標(biāo)系繞Z軸順時(shí)針旋轉(zhuǎn)θ角

XYZ左手坐標(biāo)系繞Z軸順時(shí)針旋轉(zhuǎn)θ角形成X′Y′Z′坐標(biāo)系的過(guò)程示意圖如下所示:

點(diǎn)P在XYZ坐標(biāo)系中的X,Y軸坐標(biāo)為:

點(diǎn)P在XYZ坐標(biāo)系中的X,Y軸坐標(biāo)為:

把x,y帶入x′,y′中,同時(shí)P點(diǎn)在XYZ中的Z軸坐標(biāo)與其在X′Y′Z′坐標(biāo)系中的Z′軸坐標(biāo)是相等的,所以有:

將上式表示成矩陣的形式為:

所以,XYZ左手坐標(biāo)系繞Z軸順時(shí)針旋轉(zhuǎn)θ角的旋轉(zhuǎn)矩陣Rz為:

左手坐標(biāo)系的旋轉(zhuǎn)矩陣到這里就推導(dǎo)完啦。

旋轉(zhuǎn)矩陣的運(yùn)用

實(shí)際中,當(dāng)我們要推導(dǎo)兩個(gè)不同的坐標(biāo)系,比如地心地固坐標(biāo)系和北東天、北東天坐標(biāo)系和機(jī)體坐標(biāo)系等坐標(biāo)系之間的變換關(guān)系時(shí),就要用到上面的旋轉(zhuǎn)矩陣。一般的方法是,根據(jù)實(shí)際的旋轉(zhuǎn)過(guò)程,按旋轉(zhuǎn)的先后順序計(jì)算旋轉(zhuǎn)矩陣。

比如對(duì)于右手坐標(biāo)系,如果有一個(gè)過(guò)程是先繞Y軸逆時(shí)針旋轉(zhuǎn)α,再繞X軸順時(shí)針旋轉(zhuǎn)β,最后繞Z軸逆時(shí)針旋轉(zhuǎn)γ,那么最終的旋轉(zhuǎn)矩陣的表達(dá)就是:

在應(yīng)用旋轉(zhuǎn)矩陣的過(guò)程中,小D還總結(jié)了一個(gè)經(jīng)驗(yàn):不管是左手坐標(biāo)系還是右手坐標(biāo)系,假如繞X軸逆時(shí)針旋轉(zhuǎn)θ角,相當(dāng)于繞X軸順時(shí)針旋轉(zhuǎn)2π-θ角,同時(shí)也相當(dāng)于繞X軸順時(shí)針旋轉(zhuǎn)-θ角。


旋轉(zhuǎn)矩陣的驗(yàn)證

推導(dǎo)了這么多公式,那推導(dǎo)結(jié)果是否正確呢?我們可以從《雷達(dá)數(shù)據(jù)處理及應(yīng)用》中找到相關(guān)內(nèi)容:

從書中的截圖中可以驗(yàn)證,自己推導(dǎo)的平移變換以及右手坐標(biāo)系的旋轉(zhuǎn)矩陣是沒(méi)有問(wèn)題的。但是左手坐標(biāo)系的推導(dǎo),小D至今沒(méi)有找到相關(guān)文獻(xiàn),但小D相信肯定是有的。

然后小D向gpt求證,gpt給出的答案是這樣的:

很顯然,gpt給出的右手坐標(biāo)系的旋轉(zhuǎn)矩陣不是小D上面推導(dǎo)的結(jié)果,也跟書中的結(jié)果不一樣。于是小D又去問(wèn)了gpt4,gpt4的回答是這樣的:

gpt4的回答和gpt3.5的回答如出一轍,當(dāng)時(shí)小D心想,gpt腦子估計(jì)又瓦特了。直到最近,小D看到了一本英文書籍Geometric Transformations for 3D Modeling_Michael Mortenson,小D才明白,原來(lái)gpt是沒(méi)有正確理解問(wèn)題,它給出的是坐標(biāo)系中的點(diǎn)轉(zhuǎn)動(dòng),坐標(biāo)軸不動(dòng)的情況。這本英文書籍中坐標(biāo)轉(zhuǎn)換相關(guān)的內(nèi)容是這樣的:

這個(gè)時(shí)候,小D才明白為什么gpt會(huì)給出那樣的答案,因?yàn)樾D(zhuǎn)分為兩種:

①點(diǎn)不動(dòng),坐標(biāo)軸旋轉(zhuǎn),就是小D推導(dǎo)的公式

②坐標(biāo)軸不動(dòng),點(diǎn)旋轉(zhuǎn),就是gpt第一次回答的公式

以另一種方式問(wèn)它,它就回答對(duì)了“點(diǎn)不動(dòng),坐標(biāo)軸旋轉(zhuǎn)”的旋轉(zhuǎn)矩陣正確的公式:


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉