判断三维坐标系旋转正方向的简单方法
引言
做iOS開發,不免要接觸到一些特效,其中不乏3D特效,這時候就要對iOS所使用的坐標系了解才行。若不限于iOS開發,還有MacOS開發,若不知道它們所使用坐標系的不同,初學者會很容易陷于混亂,
三維坐標系
做3D特效,就要用到三維坐標系,這是后人在笛卡爾的平面坐標系的基礎上發明的。三維坐標系分兩種,左手坐標系和右手坐標系,為什么用左手和右手來區分呢?這是因為當確定了x軸,y軸方向之后,z軸的方向的兩種,它可以通過左手或右手來確定。下面就是這兩個坐標系的規則示意圖(圖中固定了x軸的正方向向右,y軸的正方向向上):
相信大多數人對圖中的右手坐標系很眼熟,沒錯,這就是初高中數學教材用到的三維坐標系,只是我們不一定知道它叫右手坐標系。
左手坐標系我們之前很少接觸,但是在計算機圖形學中這種坐標系非常重要,比如iOS的UIView使用的坐標系就是左手坐標系。有人可能會說,不對吧,UIView的坐標系是原點在左上角,y軸正方向向下,圖中的不是這樣啊,其實沒錯啦,把圖中的左手坐標系沿x軸旋轉180度就是原點在左上角的左手坐標系,區別就是旋轉的角度不同而已。這是因為左手坐標系或者右手坐標系整體旋轉后性質是不變的。
對坐標系使用左手與右手的命名,有一個作用就是用來方便判斷旋轉的正方向,這就是左手法則和右手法則。例如對左手坐標系,確定一個旋轉軸后,左手握住拳頭,拇指指向旋轉軸的正方向,四指彎曲的方向為旋轉的正方向。相應地,右手坐標系就用右手來判定。確定了旋轉的正方向后,在公式計算中就很容易知道是該使用正角度還是負角度了。下圖就是右手的例子:
但是,這個判斷旋轉正方向的方法還是不夠快。給定任意一個旋轉角度的三維坐標系,如果按上面的方法判斷旋轉正方向,首先,你得確定這個坐標系是左手坐標系還是右手坐標系,這時你會先拿出一只手來,像上圖一樣擺好三根手指的姿勢來比對給定坐標系的x、y、z軸正方向看是否一致。然后根據旋轉軸的正方向,用相應的手來判斷旋轉正方向。
其實,完全沒有必要這么麻煩。怎么更方便地判斷,且看我慢慢道來。
先看第一個圖的兩個坐標系,左邊的為左手坐標系,右邊的為右手坐標系,兩坐標系的x軸和y軸正方向保持一致,z軸正方向相反。分別用左手法則與右手法則去判斷它們各自繞z軸旋轉的正方向,那么從我們眼睛看屏幕的角度來看,它們繞z軸旋轉的正方向都是逆時針,這當然不會是巧合。觀察這兩個坐標系,就會發現這個逆時針方向與x軸正方向箭頭頂點指向y軸正方向箭頭頂點的方向一致,這說明繞z軸旋轉的正方向與x軸正方向箭頭頂端指向y軸正方向箭頭頂端的方向有關聯嗎?我想是的。
然后再嘗試判斷兩坐標系繞x軸旋轉的正方向,它與y軸正方向頂端指向z軸正方向頂端的方向一致;而繞y軸旋轉的正方向,與z軸正方向頂端指向x軸正方向頂端的方向一致。
結論一
據此,我覺得可以得出一個結論:對于任意旋轉角度的三維坐標系,繞某一坐標軸旋轉的正方向,與另外兩個坐標軸的正方向頂端按X—>Y—>Z—>X的順序進行指向的方向一致。
這就意味著,判斷三維坐標系繞某一坐標軸旋轉的正方向,不用事先知曉這個坐標系是左手坐標系還是右手坐標系,完全不需要你用手去比劃.
反過來,既然判斷旋轉正方向這么容易,我們也可以利用它來快速判斷一個坐標系是左手坐標系和右手坐標系:使用上述結論確定坐標系繞某一某旋轉的正方向,然后逆用左手法則與右手法則,大拇指指向該軸的正方向,如果左手四指彎曲的方向與旋轉的正方向一致,該坐標系就是左手坐標系,反之就是右手坐標系。
 不過這還是復雜,還是需要用手比劃。我突然想到了一個更好的方法:
 想象y軸是一面墻,你面朝前方斜靠在墻上,可以假設你的頭部為y軸正方向頂點,腳為x軸正方向頂點,那么z軸在你的左側時就是左手坐標系,在右側時就是右手坐標系。這個時候,人體的生長方向也剛好是繞z軸旋轉的正方向。
結論二
 再擴展一下就是:對于任意旋轉角度的三維坐標系,想象你的腳踩在一個坐標軸(如x軸)正方向的頂點,頭倚靠在其鄰高坐標軸(如y軸)的正方向頂點,面朝背離原點的方向,那么,第三軸正方向頂點在你的左手邊時,這個坐標系就是左手坐標系,在右手邊時就是右手坐標系,而人體此時的生長方向就是繞第三軸(如z軸)旋轉的正方向。
 (注:這里的鄰高坐標軸是我自己定義的一個概念,X軸的鄰高坐標軸為Y軸,Y軸的鄰高坐標軸為Z軸,Z軸的鄰高坐標軸為X軸.)
在這個方法里,坐標系屬性與繞坐標軸旋轉正方向的判斷達到了統一,從此可以拋棄左手法則與右手法則,也可以拋棄手指比劃的方式來判斷左右手坐標系,是不是會覺得很簡單?
總結
以上是生活随笔為你收集整理的判断三维坐标系旋转正方向的简单方法的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 人眼中亮斑的检测、定位和去除(3)
- 下一篇: 随机样本一致抽样
