NURBS參數空間與坐標空間的轉化
問題描述:已知NURBS曲面,現在想根據x和y坐標的情況下,求z的值。由于 NURBS 曲面是參數曲面,在僅知道(x,y)坐標的情況下無法直接求出該點的矢高值,而是需要先將物理空間坐標值(x,y)轉換成對應參數空間坐標(u,v),然后再根據(u,v)值求解出該點的物理空間坐標(x,y,z)。由于(x,y)到(u,v)無法求出解析表達式,只能通過迭代求解。
參考文獻:
NURBS自由曲面在光機設計和分析中的應用
The NURBS Book 2nd
迭代算法1:
距離矢量算法:
首先,建立已知的空間坐標(x,y)和待求的參數空間坐標S(u,v)之間的距離矢量公式如下:
當距離矢量 r 取得最小值時,r 和 NURBS 曲面在參數坐標所決定的空間點處的切向量的點積應為零
采用牛頓迭代算法求解方程組,對上式兩端進行偏微分
所以
式中,δi是參數ui和vi的Newton迭代改進步長;
Ji為向量的雅可比矩陣,如下
由于雅可比矩陣比較復雜,該算法進行一次迭代需要計算NURBS曲面兩次一階偏導數和四次二階偏導數。
迭代算法2:
光線追跡法
由于距離矢量法需要計算曲面的二階偏導,速度較慢,因此研究了基于光線曲面求交方法的坐標轉換方法。
為了求取NURBS曲面上橫縱坐標為(x,y)的點的z值,假設有一條光線從點(x,y,0)以方向(0,0,1)出射并與曲面相交,則光線與曲面的交點即為所求的點。
光線矢量定義為兩個空間平面的交線,如下圖
兩個平面分別表示為
Ni為平面的法線向量,是與光線方向垂直的單位向量;
di為原點距平面的距離。
當曲面上點為光線與曲面的交點時應該滿足以下判斷條件R
根據三維空間的牛頓迭法,上述方程可改寫為:
上式中:J為R的雅可比矩陣。
Su (u,v)和Sv (u,v)為曲面方程分別關于u和v的一階偏導,表示曲面沿著u和v向的切線向量。
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















