最小不就是y2-y1+x2-x1吗?最大大多数情况下都是=点的数量-1

解决方案 »

  1.   

    最小的不管怎样都是|x1-x2|+|y1-y2|,最大的话如果在一个特定的区域中
    应在从相反方向去饶,(如果可以的话,)
    跟上面一样,就看你经过多少个点了,作起来不复杂呀。
      

  2.   

    图形学中的“微分法”和“Bresenham”算法都能轻易解决该问题。
      

  3.   

    楼上的兄弟:可以给我一个例子吗?
    [email protected]
      

  4.   

    请问 erp2(天涯劍):
       你是学生还是职员?
      

  5.   

    没有及时回答,很抱歉。
    这里介绍一个简单的“微分法”,不知道符合你要求吗。
    因为在计算机中两点的最短距离是唯一的,就是直线,
    而两点的最大距离是无法讨论的。
    若感兴趣,再介绍Bresenham算法。先在过程外定义数组变量,用于存放经过点坐标。
    X,Y:array [0..1024] :integer;procedure dda(x1,y1,x2,y2);   //始点(x1,y1);  终点(x2,y2)
    begin
       if abs(x2-x1)>=abs(y2-y1)
           then length:=abs(x2-x1)
           else length:=abs(y2-y1);
       dx:=(x2-x1)/length;
       dy:=(y2-y1)/length;
       xx:=x1;
       yy:=y2;
       for i:=0 to length do
          begin  x[i]:=round(xx);
                 y[i]:=round(yy);
                 xx:=xx+dx;
                 yy:=yy+dy;
          end;
    end;过程中未定义的变量自己定义一下。
    试试。
      

  6.   

    笔误修改:
    X,Y:array [0..1024] :integer;
    应为:
    x,y:array [0..1024] of integer;
      

  7.   

    sm2002(石门):
        你好!
    非常感谢我会尽快去完成我的程序的。希望以后能与你学习。
    我的邮件地址是:[email protected] 希望以后有机会再向你当面学习。                                            礼!     致!
       erp
    2002-03-19
      

  8.   

    sm2002(石门):
        你好!
    非常感谢我会尽快去完成我的程序的。希望以后能与你学习。
    我的邮件地址是:[email protected] 希望以后有机会再向你当面学习。                                            礼!     致!
       erp
    2002-03-19