2 TIN的数据结构
考虑到生成TIN的算法中点、线、面之间的拓扑关系,我们采用了如下的数据结构作为TIN的存储结构。该数据结构能够较好的建立TIN数据模型的拓扑关系,并且能在其点、边以及三角形之间建立快速索引,有利于我们在TIN生成算法中的实现,具体如下。
2.1 离散点表
离散点表作为所有点坐标数据的数据库,建立其索引便于以后的边表和三角形表中点索引的查询。
class DiscretedPoint:public Object
{ float x,y;// 离散点的坐标
int index;//点的索引 } zgwww.com
2.2 有序边表
记录三角网生成期间所使用过的边,以及最后存储的三角形间边的信息。
class Edge:public Object
{int Start;// 边的起点
int End;//边的终点
int LeftTriangle;// 边的左三角形索引
int RightTriangle;// 边的右三角形索引
int index;// 边的索引}
2.3 三角形网表
记录最终生成的TIN数据模型中的三角网之间的拓扑关系。该数据结构是以经典的LTL(Lawson's Triangle List)表结构来存放三角网信息的。
class TriangleNet:public Object
{int NodeA;// 三角形的顶点A的坐标索引
int NodeB;// 三角形的顶点B的坐标索引
int NodeC;// 三角形的顶点C的坐标索引
int AdjTriangleA;// 三角形的顶点A的对边相邻的三角形
int AdjTriangleB;// 三角形的顶点B的对边相邻的三角形
int AdjTriangleC;// 三角形的顶点C的对边相邻的三角形
int index;// 三角形的索引}