最近在做空間三維管線建模,結果狠狠地吃了一虧,到現在我也不明白錯誤出了什么地方,現在把我的思路拿出來與大家分享討論,歡迎有識之士多加批評。
1 什么三維管線建模
三維管線就是這樣一類空間實體:由一個固定的截面形狀沿中軸線運動所形成實體,比如水管等。其中軸線可以由一連串空間折線描述。
2 主要問題
該問題的主要方面在中軸線轉彎的地方按給定的半徑進行圓弧插補。插補圓弧要位于拐點前一條直線與后一條直線所確定的平面內。
3 起始條件
已知空間三維直角坐標系中有三個點,其坐標分別記為A(i-1)=(x(i-1),y(i-1)), A(i)=(x(i),y(i)),A(i+1)=(x(i+1),y(i+1)),在A(i)處的插補半徑為R
4 解決思路
(1)計算A(i-1)A(i)與A(i)A(i+1)的向量V1V2與A(i-1)A(i)、A(i)A(i+1)的直線方程
(2)計算-V1與V2的角平分線向量VL3,根據V3與A(i)點求出A(i-1)A(i)A(i+1)的角平分線方程L
(3)在L上確定插補圓心的坐標O
(4)根據插補圓心O的坐標與A(i-1)A(i)、A(i)A(i+1)的直線方程求出直線段與插補圓弧的交接點B1與B2
(4)設定向量VX=OB1 VY=OB2為插補圓局部坐標系的X軸與Y軸
(5)由VZ與V1 V2都垂直,可求出局部坐標系的Z軸向量
(6)由VX VY VZ可求出插補圓局部坐標系到全局坐標系的基底變換矩陣T
(7)在局部坐標系令x=Rcos(a) y=Rsin(a) z=0再通過基底坐標變換公式,可以求插補點的全局從標
(8)根據插補點坐標求出每點處的圓弧切向量,做為截面法向量
(9)將截面置于XOY平面內,切向量為Z軸,通過坐標變換可求出截面的空間坐標
(10)建立頂點索引,生成三角網并顯示
不知道我這個思路哪兒有問題。反正是有時候很準確,有的時候就不準確。郁悶ing