假设有A表
id,point1,point2
 1,  10    10.2 B表
id,point1,pontin2,seq(排序)
1 , 11.1 ,222.1  ,1
2 , 112.1 ,1212.1  , 2
3 , 121.1 ,222.1  ,3
4 , 31.1 ,222.1  ,4
5 , 133 ,122  , 5
6 , 211 ,22121  ,6
7 , 1121.1 ,222.1  ,7
求A表中的点 位于B表中那两点之间或者位于哪个点上 返回ID

解决方案 »

  1.   

    A表point1,point2用来确定一个点
    B表是按SEQ顺序来把点连接起来的一条曲线?
    然后求A是否是在这条曲线上,对么?
      

  2.   

    如果是xy坐标轴的话
    1判断a表中的点在b表中是否存在,存在返回结果标志
    2不存在判断a表中的point1在b表中的范围
     >1a表中的point1小于b表中的point1的最小的,比较a、b表中的point2,返回结果
     >2a表中的point1大于b表中的point1的最大的,比较a、b表中的point2,返回结果
     >3a表中的point1在b表中的point1的范围内,
      获取b.point1-a.point1>0最小的点及b.point1-a.point1<0最大的点,
      通过两个点获取斜率k,比较a.point1*k和a.point2,返回结果
      

  3.   

    A表中的点一定在 B的所有点连接的曲线上  三楼理解是对的不过返回的结果是 确定A在B的曲线的哪两个点直接
      

  4.   

    如果使用程序的话 我会做的 我想能不能用sql函数来完成啊  那样速度要快很多的 呵呵
      

  5.   

    数据库没办法 用java程序搞定了
    。。