如果我們手中 只有解決具體問題的工具,沒有統一的方**,那我們也無法一勞永逸地解決問題的根本。
不管我 們用什麼繪圖系統繪製圖形,一般的幾何圖形都是由點、線段和面構成。其中,點和線段 是基礎的圖元資訊,因此,如何描述它們是繪圖的關鍵。因此,我們要建立一套與各個圖形系統無關聯的、簡單的基於向量和矩陣運算的數學體 系,用它來描述所有的幾何圖形資訊。
如何用向量來描述點和線段? 乙個向量包含有長度和方向資訊
在視覺化的許多應用場景中,我們都 要處理成百上千的圖形。如果這個時候,我們在原始座標下通過計算頂點來繪製圖形,計 算量會非常大,很麻煩。那採用座標變換的方式就是乙個很好的優化思路,它能夠簡化計 算量,這不僅讓**更容易理解,也可以節省 cpu 運算的時間。
座標系轉換
math.atan2() 返回從原點(0,0)到(x,y)點的線段與x軸正方向之間的平面角度(弧度值),也就是math.atan2(y,x)。math.atan2 的取值範圍是 -π到π,負數表示在 x 軸下方,正數表示在 x 軸上方。
math.
atan2(90
,15)// 1.4056476493802699
math.
atan2(15
,90)// 0.16514867741462683
math.
atan2
( ±0,-
0)// ±pi.
math.
atan2
( ±0,+
0)// ±0.
math.
atan2
( ±0
,-x )
// ±pi for x > 0.
math.
atan2
( ±0
, x )
// ±0 for x > 0.
math.
atan2
(-y, ±0
)// -pi/2 for y > 0.
math.
atan2
( y, ±0
)// pi/2 for y > 0.
math.
atan2
( ±y,
-infinity
)// ±pi for finite y > 0.
math.
atan2
( ±y,
+infinity
)// ±0 for finite y > 0.
math.
atan2
( ±infinity
, x )
// ±pi/2 for finite x.
math.
atan2
( ±infinity,-
infinity
)// ±3*pi/4.
math.
atan2
( ±infinity,+
infinity
)// ±pi/4.
math.hypot() 函式返回所有引數的平方和的平方根。
餘弦定理
點乘點乘幾何意義
點乘的幾何意義是可以用來表徵或計算兩個向量之間的夾角,以及在b向量在a向量方向上的投影
,有公式:
推導過程如下,首先看一下向量組成:
定義向量:
根據三角形餘弦定理有:
根據關係c=a-b(a、b、c均為向量)有:
即:
向量a,b的長度都是可以計算的已知量,從而有a和b間的夾角θ:
注意:上面公式應該是反余弦函式,即arccos().
根據這個公式就可以計算向量a和向量b之間的夾角。從而就可以進一步判斷這兩個向量是否是同一方向,是否正交(也就是垂直)等方向關係,具體對應關係為:
叉乘公式
兩個向量的叉乘的運算結果是乙個向量而不是乙個標量,並且兩個向量的叉積與這兩個向量組成的座標平面垂直。
對於向量a和向量b:
a和b的叉乘公式為:
其中:
根據i、j、k間關係,有:
叉乘幾何意義在三維幾何中,向量a和向量b的叉乘結果是乙個向量,更為熟知的叫法是法向量,該向量垂直於a和b向量構成的平面。
在3d影象學中,叉乘的概念非常有用,可以通過兩個向量的叉乘,生成第三個垂直於a,b的法向量,從而構建x、y、z座標系
。如下圖所示:
在二維空間中,叉乘還有另外乙個幾何意義就是:axb等於由向量a和向量b構成的平行四邊形的面積。
為什麼要有引數方程和引數方程的定義
引數方程意義:
引數方程主要用來描述曲線軌跡,一般來講,引入乙個引數會較容易的表示出曲線每個座標之間的關係,通常來講,時間和角度用的比較多。總之,你引入乙個中間量,會使得問題簡化或更容易理解!比如擺線的描述,直接求解y和x的關係,相信你一頭霧水,但是引入適當引數後,so easy!
參考:
資料視覺化 什麼是資料視覺化
資料對應的英文單詞是data,從資訊獲取的角度看,資料是對目標觀察和記錄的結果,是現實世界中的時間 地點 事件 其他物件或概念的描述。不同學者對資料的作用也給出不同的定義,大致分為以下3類 視覺化對應的兩個英文單詞 visualize和visualization。visualize是動詞,描述 生成...
資料視覺化
資料視覺化主要旨在借助於圖形化手段,清晰有效地傳達與溝通資訊。但是,這並不就意味著資料視覺化就一定因為要實現其功能用途而令人感到枯燥乏味,或者是為了看上去絢麗多彩而顯得極端複雜。為了有效地傳達思想概念,美學形式與功能需要齊頭並進,通過直觀地傳達關鍵的方面與特徵,從而實現對於相當稀疏而又複雜的 資料集...
資料視覺化
畫餅圖 def print pie input data res for each in input data res each res.get each,0 1 label x for j in res fig plt.figure plt.pie x,labels label,autopct 1...