1. 程式人生 > >UG二次開發中的座標系變換與點座標變換

UG二次開發中的座標系變換與點座標變換

根據線性代數理論,線性空間中定義的“運動”只有平移和旋轉兩種形式。其中,任意三維旋轉“運動“都可以由兩個二維旋轉變換矩陣的乘積表示,即繞Z軸(即在X-Y面上)的旋轉矩陣B和繞新的Y軸(即在X-Z面上)的旋轉矩陣A的乘積。

在UG中,相對座標與絕對座標之間的變換、點在座標系內部的變換及點在不同座標系之間的變換都是通過旋轉(平移)變換完成的。

UG OPEN API提供了函式UF_CSYS_map_point,以簡化點座標在不同座標系之間的轉換過程。下文以WCS_to_ABS表示將WCS下的點座標轉換到ABS下,以ABS_to_WCS表示將ABS下的點座標轉換到WCS下。

由於點在不同座標系之間的變換關係基於不同座標系之間的變化關係,因此可以利用不同座標系之間的旋轉變換矩陣來實現UF_CSYS_map_point函式的功能。用一個簡單的例子描述:

已知初始情況下,WCS與ABS重合。將WCS繞Z軸沿逆時針旋轉A角,將作用於WCS的旋轉矩陣表示為mtx(A)

將ABS下的點變換至WCS下,等價於在ABS下,將該點繞Z軸轉動-A角並計算其座標值。而ABS下的點繞Z軸轉動-A角又等價於ABS繞Z軸轉動A角。因此,UF_CSYS_map_point(ABS, P_abs, WCS, P_wcs)等價於P_wcs = mtx(A) * P_abs。

將WCS下的點變換至ABS下,等價於在WCS下,將該點繞Z軸轉動A角並計算其座標值。而WCS下的點繞Z軸轉動A角又等價於WCS旋轉-A角。因此,UF_CSYS_map_point(WCS, P_wcs, ABS, P_abs)等價於 P_abs = mtx(-A) * P_wcs。