深度学习c++之ch_13

上传人:子 文档编号:46897107 上传时间:2018-06-28 格式:PDF 页数:34 大小:794.77KB
返回 下载 相关 举报
深度学习c++之ch_13_第1页
第1页 / 共34页
深度学习c++之ch_13_第2页
第2页 / 共34页
深度学习c++之ch_13_第3页
第3页 / 共34页
深度学习c++之ch_13_第4页
第4页 / 共34页
深度学习c++之ch_13_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《深度学习c++之ch_13》由会员分享,可在线阅读,更多相关《深度学习c++之ch_13(34页珍藏版)》请在金锄头文库上搜索。

1、1類別間的關係( (二) ):幾何範例深度學習C+ Chapter 13類別間的關係(二二) 幾何範例深度學習C+2類別間的關係( (二) ):幾何範例深度學習C+ 平面點的搬動 位置轉換:將平面點更動到另一個位置 尺度保持:物體的任兩點距離在經過搬動後仍保持不變transformation, distance preserving3類別間的關係( (二) ):幾何範例深度學習C+ 三種尺度保持的轉換動作 (一)(x,y)平移YX旋轉YX鏡射YX 平移 旋轉 鏡射translation, rotation, reflection4類別間的關係( (二) ):幾何範例深度學習C+ 三種尺度保持的

2、轉換動作 (二)xyx = : 點在搬動前的座標X = X : 點在搬動後的座標YYX.(x,y)(X,Y) 平面點5類別間的關係( (二) ):幾何範例深度學習C+ 三種尺度保持的轉換動作 (三) 平移:平移距離為(x,y)平移YX旋轉YX鏡射YX(x,y) xyX Yx yX = =+=x + x 旋轉:逆時鐘旋轉角度為 鏡射:鏡射軸角度X YX = = Mrxxy cos cos-sin sin, Mr= cos cos-sin sinX YX = = Mfxxycos -cossin sin, Mf=cos -cossin sin6類別間的關係( (二) ):幾何範例深度學習C+ 均勻

3、座標 均勻座標系統:將二維空間上的平面點看成在三維空間 Z = 1 平面上的座標點( x , y ) ( x , y , 1 )homogeneous coordinate7類別間的關係( (二) ):幾何範例深度學習C+ 均勻座標的轉換動作 (一) 平移:平移距離為(x,y)1 0 x 0 1 y 0 0 1 x1yX1YX = = = Mtx這裡Mt= 1 0 x 0 1 y 0 0 1 (x,y)平移YX8類別間的關係( (二) ):幾何範例深度學習C+ 均勻座標的轉換動作 (二) 旋轉:逆時鐘旋轉角度為x1yX1YX = = = Mrx這裡Mr= cos -sin0 sin cos0

4、0 0 1 旋轉YXcos -sin0 sin cos0 0 0 1 9類別間的關係( (二) ):幾何範例深度學習C+ 均勻座標的轉換動作 (三)x1yX1YX = = = Mfxcos sin 0 sin -cos0 0 0 1 這裡Mf= cos sin0 sin -cos0 0 0 1 鏡射:鏡射軸角度 鏡射YX10類別間的關係( (二) ):幾何範例深度學習C+ 轉換矩陣 (一) 轉換矩陣:轉換矩陣乘上搬動前點的均勻座標即可求得在搬 動後的座標transformation matrix11類別間的關係( (二) ):幾何範例深度學習C+ 轉換矩陣 (二) X0旋轉 45 後對 Y 軸

5、鏡射,再往上平移 5x1= Mrx0x2= Mfx1x3= Mtx2cos -sin 0 sin cos 0 0 0 145 Mr= 45 4545cos sin 0 sin -cos 0 0 0 1Mf= 90 9090 901 0 0 0 1 5 0 0 1 , Mt= 12類別間的關係( (二) ):幾何範例深度學習C+ x3= Mtx2 = MtMfx1 = MtMfMrx0 = M x0其中 M = MtMfMr轉換矩陣 (三)M= cos -sin 0 sin cos 0 0 0 14545 4545cos sin 0 sin -cos 0 0 0 190 9090 901 0 0

6、 0 1 5 0 0 1 = 2121 2121050 0 1 13類別間的關係( (二) ):幾何範例深度學習C+ 轉換矩陣 (四) 轉換矩陣 M 的第三列一直保持不變,因此在 程式設計上 M 可以定義為 2x3 的矩陣X3=X3 Y3 1x0 y0 1= Mx0= 2121 2121050 0 1 14類別間的關係( (二) ):幾何範例深度學習C+ 轉換基礎類別 (一) 平移、旋轉與鏡射都是一種幾何轉換類別 Geometric_Transformation 並無任何實體, 故定義其為一抽象類別Geometric_TransformationTranslationRotationRefle

7、ction平移鏡射旋轉15類別間的關係( (二) ):幾何範例深度學習C+ enum Transformation_Type TRA , ROT , REF ;class Geometric_Transformation protected :double m23 ;public : void update_transformation_matrix( double a23 ) ;virtual Transformation_Type get_transformation_type() const = 0 ; ;轉換基礎類別 (二) 基本形式/ 計算新的轉換矩陣 A = M A 兩轉換矩陣乘積

8、/ 回傳轉換的類型,為一純虛擬函式/ / 轉換矩陣/ 幾何點轉換:抽象基礎類別/ 設定轉換類別:平移、旋轉、鏡射16類別間的關係( (二) ):幾何範例深度學習C+ 轉換基礎類別 (三) 平移衍生類別class Translation : public Geometric_Transformation private :Distance dx , dy ;public :Translation( Distance x , Distance y ) : dx(x) , dy(y) m00 = 1. ; m01 = 0, ; m02 = dx ; m10 = 0. ; m11 = 1. ; m12

9、 = dy ; virtual Transformation_Type get_transformation_type() const return Transformation_Type( TRA ) ; ;/ / 儲存 x 與 y 的平移距離/ / 設定轉換矩陣17類別間的關係( (二) ):幾何範例深度學習C+ 平面座標點類別 平面點類別class Point private :double x , y ;public :Point() Point( double a , double b ) : x(a) , y(b) Point rotation( Angle angle ) con

10、st ; Point reflection ( Angle angle ) const ; Point translation( Distance dx , Distance dy ) const ;Point transformation( const vector ;/ / 平面點的座標/ / 回傳座標點經過一連串的幾何轉換的座標/ / 回傳在平移,旋轉,鏡射後的座標點18類別間的關係( (二) ):幾何範例深度學習C+ 平面點座標轉換 一平面點可以經過一連串的轉換動作搬動到某處Point Point:transformation( const vectorfor( int i = 0 ;

11、 i update_transformation_matrix(m) ; return Point( m00*pt.getx() + m01*pt.gety() + m02 , m10*pt.getx() + m11*pt.gety() + m12 ) ; / 設定初始的轉換矩陣為單位矩陣/ 重複計算每次幾何轉換後的轉換矩陣 m m/將轉換矩陣乘上原始點座標位置後 產生新點輸出19類別間的關係( (二) ):幾何範例深度學習C+ 平面點移動 輸入格式:點座標轉換次數個別轉換的方式與其相關資料 1 1 3 TRA 2 , 0 ROT 90 REF 45程式程式輸出輸出20類別間的關係( (二)

12、):幾何範例深度學習C+ 基本幾何圖形資料庫 以執行效率考量:常見的三角形與四邊形也可以直接繼承自基礎類別 在此類別架構下,新的圖形可直接掛上而不須更 改已有的任何程式碼基本幾何圖形線段圓多邊形多邊線段.四邊形三角形21類別間的關係( (二) ):幾何範例深度學習C+ 基本幾何圖形抽象類別 基本幾何圖形類別並無幾何實體,故定義為抽象類別 第(1)個純虛擬函式用於移動衍生類別的圖形;第(2)個純虛擬函式用於 複製衍生類別物件;第(3)個純虛擬函式用於列印衍生類別物件class Basic_Geometric_Entity private : Color fgcolor , bgcolor ; N

13、ame entity_name ; public :virtual Basic_Geometric_Entity* transformation( const vectorvirtual Basic_Geometric_Entity* clone() const = 0 ;virtual ostreamfriend ostream 同樣的方式也可以應用於移除動態空間的解構函式/ / 動態產生各衍生類別物件存入 foo 陣列/ / 定義兩個各包含 10 個指標的陣列/ / 複製 foo 指標陣列的每個物件到 bar 指標陣列25類別間的關係( (二) ):幾何範例深度學習C+ 非成員函式虛擬化

14、(一) 若要列印類別架構內的衍生類別物件for ( int i = 0 ; i Line : ” ” ” p ” , ” q ” ” ; ;/ / 線段的兩個端點/ / 列印線段/ / 線段類別28類別間的關係( (二) ):幾何範例深度學習C+ 基本幾何圖形資料庫程式程式輸出輸出29類別間的關係( (二) ):幾何範例深度學習C+ 簡易網格生成法 結構性網格 非結構性網格30類別間的關係( (二) ):幾何範例深度學習C+ 結構性網格 結構性網格:可透過數學函式將在0,1x0,1的方形區域的簡單 格子 , 一一映射到較複雜的幾何區域內abdcdcbaf31類別間的關係( (二) ):幾何範例

15、深度學習C+ gunplot 繪圖軟體 (一) 最普遍的科學繪圖程式 繪圖功能強大且多樣,同時也是免費 程式網址(www.gnuplot.org)32類別間的關係( (二) ):幾何範例深度學習C+ gunplot 繪圖軟體 (二) 網格範例415623415623: ( 0 , 0 ): ( 2 , 0 ): ( 1 , 1 ): ( 1 , 0 ): ( 0 , 1 ): ( 2 , 1 ) 網格與格點格點座標33類別間的關係( (二) ):幾何範例深度學習C+ gunplot 繪圖軟體 (三) gunplot 檔案儲存格式# 四邊形格子 1254 0 0 # 點 1 1 0 # 點 2 1 1 # 點 5

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号