首先,我不想要像A *,Dijkstra这样的算法,因为这种算法可以计算最佳和最短的方法。我在JPanel中有两个点,我必须使用一个点数组的电缆连接它们。允许的唯一方向是向上,向下,向左和向右,电缆必须具有最小方向更改次数。这是最重要的要求,当然算法不计算最短路径。我该怎么做?有类似的算法吗?
谢谢!
答案 0 :(得分:4)
我认为你应该再看一下传统的最短路径算法。与边缘相关的重量不需要与物理距离有任何关系。
构建一个图形,其中潜在的角为顶点,顶点之间每条直线连接的边,每条边的权重为1。您想要的路径是通过该图表的“最短”路径。
答案 1 :(得分:3)
对于这个简单的问题,“算法”这个词是不是太花哨了? A(X1,Y1) and B(X2,Y2)
之间的最短路径可以是C(X1,Y2) or D(X2,Y1)
,两种方式之间的距离相同,如果是X1 != X2 && Y1 != Y2
,但如果两个点之间的任一坐标相同,则它是一条直线没有休息。路径的长度为abs(X2-X1)+abs(Y2-Y1)
。