反射向量解法

2021-09-17 07:26:27 字數 911 閱讀 1802

由上圖可知l,r,b,n,s為向量,其中l,r,n為單位向量,根據平行四邊形四邊相等,則對角線垂直平分。得到b向量是s向量的一半。而各向量的長度表示為對應的小謝字母l,r,b,n,s;a為入射角。

解法1:

由向量加法得到:

公式1:s = l+ r

由三角函式得到:

公式2:b = l * cos a

因為b向量是s向量的一半,所以b向量的長度也為s向量的一半,則:

公式3:s = 2 * b

因為向量s,n處於同一方向,所以向量與向量模的比相同,得到:

公式4:s/s = n/n

根據點乘公式得:

公式5 :cos a = dot(n,l) / (n * l)

根據上述公式,可得到:

s = n * s / n

= n * 2 * b / n

= n * 2 * cos a * l / n

r + l = n * 2 * cos a * l / n

r = n * 2 * cos a * l / n

r = n * 2 * dot(n,l) * l / (n * l * n) 

因為l,n均為單位向量,所以它們的模l,n大小均為1,則

r = n * 2 * dot(n,l)

解法2:

b = n * b / n

由公式2得:

b = n * l * cos a / n

由公式3得:

s = 2 * b

= 2 * n * l * cos a / n

最終推導跟解法1相同。    

MPI程式設計 矩陣向量乘法 解法二(高效能計算)

有留心過的朋友可能會發現,其實我沒寫過解法一。因為解法一就是大家最直觀的感受的一種解法。這裡的方法二,t hr ead i j 0n 1ai j xj thread i sum x j thread i j 0 n 1 aij xj r es ult thr ead j result thread ...

向量裁剪向量

也不知道為啥,向量裁剪向量這麼普通的東西這麼難找,趕緊放出來讓大家用用 import os import numpy as np import geopandas as gpd import warnings warnings.filterwarnings ignore geoseries.notn...

反射 反射的總結

就是得到class物件後,反向獲取物件的各種資訊 公有的,私有的等等 帶有declared修飾的方法可以反射到私有的方法,沒有declared修飾的只能用來反射公有的方法。其他的annotation field constructor也是如此。執行過程中操作各種類的物件。可以解耦,提高可拓展性。效能...