平凡的世界

神鹰忽展翅,头顶青天飞
随笔 - 10, 文章 - 0, 评论 - 34, 引用 - 0
数据加载中……

关于三维管线建模的问题

 

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

 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)的向量V1V2A(i-1)A(i)A(i)A(i+1)的直线方程

(2)计算-V1V2的角平分线向量VL3,根据V3A(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)的直线方程求出直线段与插补圆弧的交接点B1B2

(4)设定向量VXOB1 VYOB2为插补圆局部坐标系的X轴与Y

(5)VZV1 V2都垂直,可求出局部坐标系的Z轴向量

(6)VX VY VZ可求出插补圆局部坐标系到全局坐标系的基底变换矩阵T

(7)在局部坐标系令x=Rcos(a) y=Rsin(a) z=0再通过基底坐标变换公式,可以求插补点的全局从标

(8)根据插补点坐标求出每点处的圆弧切向量,做为截面法向量

(9)将截面置于XOY平面内,切向量为Z轴,通过坐标变换可求出截面的空间坐标

(10)建立顶点索引,生成三角网并显示

 不知道我这个思路哪儿有问题。反正是有时候很准确,有的时候就不准确。郁闷ing

posted on 2007-10-27 20:57 西门有悔 阅读(962) 评论(4)  编辑 收藏 引用

评论

# re: 关于三维管线建模的问题[未登录]  回复  更多评论   

要我说没有那么麻烦,其实两条线段既然相交,那么他们说所生成的管线也会局部相交,你可以求出两个交点,截取无用的,然后在裂缝的两个不全园上平均分段,然后链接这些点形成三角形就可以了,如果想要过度平滑,可以在缺口处利用极坐标系进行插值。

2007-10-29 15:11 | flyman

# re: 关于三维管线建模的问题  回复  更多评论   

@flyman

呵呵.用极坐标系这个方法我还是真没有想到.只想到用法向量坐标变换了.搞得很复杂.

主要是求那个插补圆的方程.

我找到问题了.就是在求角平分线向量的时候要先把角两边的向量化成单位向量,然后再计算.
2007-10-29 21:15 | 西门有悔

# re: 关于三维管线建模的问题  回复  更多评论   

好像原来搞数学建模的时候看到有一年的竞赛题目是三维血管方面的建模!
2007-10-30 09:32 | 刘远清

# re: 关于三维管线建模的问题  回复  更多评论   

三维管线自动建模工具PipelineCreator
http://www.fuling-tech.com/pipeline.htm
2011-04-12 00:31 | jeery

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理