旋轉和反射

2021-06-16 15:26:32 字數 1283 閱讀 7362

參見wiki(coordinate_rotations_and_reflections)

旋轉即為繞乙個軸進行旋轉,參見博文「三維旋轉基礎」,這裡主要討論反射,但是反射與旋轉也存在一定的聯絡。

乙個平面內的旋轉可以通過組合一組的反射形成,如下圖所示

直線l1和l2的夾角為a,角點為o,一點p經過l1反射得到p』,然後再經過l2反射得到p』』,

這個時候pop』』的夾角為2a(等腰三角形被中垂線分割即可證明)。

現在定義繞原點旋轉乙個角度a為r(a)。同時對於一條通過原點並且與正x軸夾角為a的直線l,令它的反射為ref(a)。二維形式下對應的矩陣分別為

反射矩陣ref的證明參見下圖

上圖中,點p由直線ol進行反射得到p』,ol與x軸的夾角為θ,op與x軸的夾角為β,ol與op的夾角為α,可知經過反射後op』與x軸的夾角為(θ+α)。令op的長度為h,有:

x = hcos(β)

y = hsin(β)

θ = α + β

x』 = hcos(θ+α) = hcos(2θ-β) = hcos(2θ)cos(β) + hsin(2θ)sin(β) = cos(2θ)x + sin(2θ)y

y』 = hsin(θ+α) = hsin(2θ-β) = hsin(2θ)cos(β) - hcos(2θ)sin(β) = sin(2θ)x - cos(2θ)y

=> [x』 y』]』 = ref(θ)*[x y]』 = [cos(2θ)  sin(2θ);sin(2θ) - cos(2θ)]*[x y]』

=> ref(θ)= [cos(2θ)   sin(2θ);

sin(2θ)  -cos(2θ)];

1旋轉矩陣和反射矩陣都是正交矩陣

2 旋轉矩陣的行列式值為+1,反射矩陣的行列值為-1

3 旋轉矩陣r(θ)的逆矩陣為r(-θ),反射矩陣的逆矩陣為其本身

4 旋轉矩陣和反射矩陣可以相互轉換

旋轉矩陣和反射矩陣的這些特性推廣到三維同樣適用。

反射簡介 C 特性和反射

net編譯器的任務之一就是為所有定義和引用的型別生成元資料描述。除了程式集中標準的元資料外,net平台還支援特定 attribute 把更多的元資料嵌入到程式集中。net特性擴充套件了抽象的system.attribute基類,net中有很多預定義的特性,例如 dllimport obsolete ...

反射和註解

反射 通過乙個類的 類物件 可以使用它自身的方法,來建立例項,呼叫成員 1.獲得 類物件 方法區中,載入所有的類,都是乙個class型別的物件 class.forname string 類名 類名為全稱 類名.class 物件.getclass 2.反射建立例項 class c class.forn...

反射和屬性

反射的概念 反射遍歷成員 用射呼叫型別成員 屬性概念 attribute 屬性的例項 自定議屬性 三個屬性 二次編輯一次執行 一次編譯後 反射 反射是程式設計的讀取與型別相關聯的元資料的行為。通讀取元資料,可以了解它是什麼型別以及型別的成員。比如類中的屬性,方法,事件等。所屬命名空間system.r...