一堆點都乘以同一個變換矩陣(4*4矩陣),這些點的相對位置會發生變化嗎?為什麼?求大神!?


剛性變換(rigid transformation),即平移、旋轉、鏡射及它們的組合變換,把點變換後,點與點之間的距離維持不變。


一般地,乘以矩陣相當於做了仿射變換,這些空間點會延矩陣各個特徵值的對應方向(即相應的特徵向量)產生一定程度(即特徵值大小)的拉伸和收縮。

當矩陣所有特徵值相同時,就是 @You XingJie提到的正交矩陣;當所有特徵值相同且均為1時,就是 @Milo Yip提到的剛性變換。此時點的相對位置保持不變。


變換是一個函數,它把一個點(或向量)映射成另一個點(或向量)。

那麼變換可以大致劃分一下範圍:

變換 屬於線性變換 屬於仿射變換 屬於剛性變換

以下就是變換而不是線性變換。線性變換中,原來是直線的,在變換之後仍然保持直線。

我們可以用上圖表示一個變換或者用函數的形式:

Q=T(P)這是點的變換。而

v=R(u)是向量的變換。

上面對於變換的表述過於一般(適用於所有變換)以至於不是很有用。在計算機圖形學方面,如果運用這種變換的話。對一條線段的變換那就必須計算這個線段上所有點的變換,計算量太大,而且不實用。那麼另外一種計算變換的方式應運而生——那就是矩陣變換。在齊次坐標下的矩陣變換中,矩陣是4*4的。也就是題主說的那種格式。

這種矩陣變換是線性變換。

一個函數是線性變換,當且僅當對於任何標量alpha eta 以及任何兩個頂點(或者向量)p和q,都有f(alpha p+eta q)=alpha f(p)+eta f(q)。線性函數的重要性在於:因為變換的線性組合等於線性組合的變換,所以只要知道p和q的變換就可以求出它們線性組合的變換,這樣就無須直接計算每個線性組合的變換了。

那麼什麼是仿射變換呢?


按照維基百科上的解釋

仿射變換,又稱仿射映射,是指在幾何中,一個向量空間進行一次線性變換並接上一個平移,變換為另一個向量空間。

這裡又提到了一次線性變換,不過這裡的線性變換姑且稱之為狹義的線性變換(就是不帶平移的線性變換)。

一個對向量平移,與旋轉放大縮小的仿射映射為

上式在齊次坐標上,等價於下面的式子

這裡的A矩陣就是說的狹義的線性變換,當y向量是0向量或0點時,A對這個向量或者點一點辦法也沒有,只有加上了b向量才更加自由。

也就是說,仿射變換中

對於點,4*4的變換矩陣只用到了12個,就是有12個自由度

對於向量,4*4的變換矩陣只用到了9個,就是有9個自由度

而對於廣義的線性變換,這個矩陣有12個自由度。

而對於題主說的相對位置不變,那就是剛性變換,當然會改變相對位置呀~

第一次作答,排版和表達不清見諒,說不明白的地方來諮詢。

參考資料:仿射變換

互動式計算機圖形學


推薦閱讀:

cad證書有用嗎?
AutoCAD軟體,有些什麼可以優化的設置?
cad選擇一個對象後點「特性」選項,特性顯示空白怎麼解決?
如何高效地進行AutoCad2014版本的學習和使用?
關於 Surface Pro 4 與 iPad Pro 的選購問題?

TAG:科技博客 | CAD | 圖形圖像 | 圖形處理器GPU | 計算機圖形學 |