障碍物是矩形,那么你应该有四条边的线段函数了,两点的坐标肯定是提供的,那么你只要判断两点间连线是否和四条线段相交就行了。通过障碍物的最短距离应该是
1.一个点--〉这个障碍物其中一个顶点--〉另一个点。
2.一个点-->这个障碍物其中一个顶点-->障碍物沿着一条边到另一个顶点--〉另外一个顶点到点1     A
    ---------
    1       1   
    1       1  B
    ---------
2
    ---------
A   1       1   B
    1       1
    ---------3.(有没有这种情况?)
    ---------
    1  A    1   B
    1       1
    ---------4.(有没有这种情况?)
    ---A-----
    1       1   B
    1       1
    ---------

解决方案 »

  1.   

    好像这里的编辑所见非所得阿,只好把矩形画实心了
    1) A
    **********
    **********
    ********** B
    **********2)
    _____A
    **********
    **********
    **********
    **********
    _____B
    3.(有没有这种情况?)
    **********
    **A*******B
    **********
    **********4.(有没有这种情况?)***A******
    **********
    **********B
    **********
      

  2.   

    呵呵,咋一看,没考虑到一些情况,漏了 happyegg(想转型的程序员) 的情况了,
      

  3.   

    happyegg(想转型的程序员) ,还要考虑A,B距离障碍物较远的情况,就完全了
      

  4.   

    感谢JavaVsNet(JavaVsNet)帮忙,有没有图论的相关资料?