最近在做空间三维管线建模,结果狠狠地吃了一亏,到现在我也不明白错误出了什么地方,现在把我的思路拿出来与大家分享讨论,欢迎有识之士多加批评。
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