题目:计算二维测线交点
背景:
地震工区根据测量和处理方法可分为三维工区和二维工区,其中二维工区是由多条二维测线组成,一条二维测线的测量信息在大地坐标的投影,可抽象为一条由多个控制点(节点)定义的折线,其中控制点称之为测线的拐点,每个拐点由大地坐标系X、Y定义。在实际生产中,一个二维工区可能包括上千条测线,每条测线则有两个直至数百个拐点。
在二维工区进行地震解释时,往往会沿多条二维测线创建一条连续的剖面去观察工区骨干构造或围绕研究局部地质体形态,这时,这条连续的剖面轨迹所跨越的多条测线间的连接就是测线的交点。如下图所示:
其中有6条测线,图中蓝点为各条测线的拐点。红线为一条跨越三条测线的轨迹。
需求:
1)完成一种快速计算当前工区所有测线的交点的算法;
2)其中,已知所有测线拐点,每个拐点用大地坐标(X、Y)标识。数据保存于GeoEast数据库中的一个二维工区中;
3)测线条数不少于2000根,所有测线拐点总和不少于50000个。计算总驻机时间不超过10秒;
4)计算得到的交点应包括该交点的X、Y位置和相交两测线名称等信息,可使用相宜方式输出或展示(可保存为GeoEast散点数据,或者保存为外部文本文件),如果保存为外部文件,格式如下,X、Y坐标保留小数点后2位有效值。
Line1 Line2 X Y
G16-04 g12-11 1111.00 2222.00
G16-04 G16-05 3333.00 4444.00
...
5)集成方式:单独执行码集成到主控;
6)设计比较合理的界面,实现选择工区和测线,以及计算结果保存数据名的输入等;
7)提供软件设计说明文档和代码编制说明文档。
评分标准:
序号 | 评分项目 | 分值 | 评分标准 | 分值 |
1 | 方法指标 | 60 | 1、正确读取GeoEast数据库中指定二维工区所有测线信息 2、正确计算所有测线交点 3、正确直观展示计算结果 满分60分,最低40分 | 10 40 10 |
2 | 性能指标 | 40 | 1、算法部分驻机时间不超过10秒 2、合理占用内存 3、反复调用和增减测线时效率影响小 满分40分,最低10分 | 30 5 5 |