一种基于插值算法的区域包围式超图可视化方法技术

技术编号:9060779 阅读:177 留言:0更新日期:2013-08-21 23:53
本发明专利技术涉及一种基于插值算法的区域包围式超图可视化方法,属于计算机应用领域,特别是计算机图形学与可视化技术领域。本发明专利技术通过超边扩展,获得扩展点链表,将其重组为两个控制点数组,对两个控制点数组,分别使用Catmull-Rom算法进行曲线插值计算,根据所设定的插值点数M,获得M个插值点,连接控制点和M个插值点,获得超边包围区域边界;对包围区域分别使用三角带和三角扇方式填充绘制;最后对超图中的每一条超边,使用色相环理论进行着色。本发明专利技术给出了一种直观、快速的超图可视化方法,解决了超边表达不直观的问题。

【技术实现步骤摘要】

【技术保护点】
一种基于插值算法的区域包围式超图可视化方法,其特征在于包括如下步骤:步骤1、读入超图数据,将读入的超图数据分别存储为节点数据和超边数据,节点的数据结构保存至一个结构体中,节点信息使用数组存储结构进行存储;超边信息使用链表存储结构进行存储;步骤2、将步骤1中读入的超边沿超边的垂线方向往两侧方向进行扩展,根据超边中所含节点的顺序,将超边所涉及的节点分为中间节点和末端节点,并分别计算其“扩展点”;针对中间节点,首先根据该中间节点与其两侧邻接节点的连接线,计算“过中间节点的两连接线角平分线”,然后根据所设定的超边包围区域宽度W,在该角平分线上中间节点的两侧,分别找到与中间节点距离为W的点,作为该中间节点的“扩展点”;针对末端节点,首先根据该末端节点与其邻接节点的连接线,计算一条“过末端节点并垂直于连接线”的垂线,然后根据所设定的超边包围区域宽度W,在该垂线上末端节点的两侧,分别找到与末端节点距离为W的点,作为该末端节点的“扩展点”;步骤3、通过步骤2所获得的扩展点,进行同侧扩展点归并,根据扩展点与超边的相对位置关系,分为两个扩展点链表;步骤4、针对步骤3中归并获得的两条扩展点链,将其进行重组为两个控制点数组;步骤5、对步骤4中获得的两个控制点数组,分别使用Catmull?Rom算法进行曲线插值计算,根据所设定的插值点数M,将获得M个插值点,连接控制点和M个插值点,将在两个扩展点之间获得的一段平滑曲线;步骤6、将步骤5中获得的区域边界曲线的各个子段,分类为始终位于超边一侧的子段和跨越超边两侧的子段,并分别称之为“同侧子段”和“跨侧子段”,每个同侧子段存在于一对超边节点的扩展点之间,并必然在超边的另一侧存在一个对应的同侧子段;跨侧子段将位于超边的末端节点位置附近;对于拥有N个节点的超边来说,将拥有2*(N?1)个同侧子段,以及2个跨侧子段;对于同侧子段,将其与超边另一侧的对应子段进行配对,并将插值点交叉间隔存储;对于跨侧子段,将其独立存储,以便于OpenGL的三角扇绘制;步骤7、对超图中的每一条超边,使用色相环理论进行着色,即根据超图中超边的数量,自动为各条超边添加颜色,从而增强超图中各条超边的区分度,增强超图绘制结果的直观性;步骤8、使用OpenGL中的折线(GL_LINE_STRIP)模式绘制超边包围区域的边界曲线,使用OpenGL中的三角带(GL_TRIANGLE_STRIP)模式绘制已配对并交叉存储的同侧子段部分,使用OpenGL中的三角扇(GL_TRIANGLE_FAN)模式绘制跨侧子段部分;步骤9:判断超图中的所有超边是否绘制完毕,如还有未绘制超边,则跳转至步骤2,进行下一条超边的绘制。...

【技术特征摘要】

【专利技术属性】
技术研发人员:陈红倩陈谊刘鹂曹健张金跃林晓蕾
申请(专利权)人:北京工商大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1