介之推 发表于 2012-2-12 17:05:47

如何获得两条平行直线之间的距离?

大家好,请问如何获得两条直线之间的距离,同时排出这两条直线重合时的情况。请大家给点思路和代码.

liuxu042 发表于 2012-2-13 08:47:37

求两条直线之间的距离,转化为一条直线L1上取一点A(可为起点),直线L2上取两点C(L2起点)、D(终点),两条直线L1、L2重合时可利用AC、AD的叉乘为0即可(AC x AD=0),不重合共线时,求两条直线之间的距离方法就比较多了,
方法1:可先求出三角形的面积SACD,可利用叉乘计算,再利用三角形底CD的长度计算
方法2:利用方法GetClosestPointTo求出A在CD上的垂足,再求出距离
。。。
当然还有很多方法,以上只是我的看法

moyu132 发表于 2012-2-13 14:51:35

直线本身有角度,可以从其中一条直线中取出第一或第二点,以此点与另一条直线的第一或第二之间线的长度和角度,它的相对角度的正玄与长度之积就是两平行线的距离,为0时,就是两条在同一直线上

阿水被抢了 发表于 2012-2-14 09:52:39

      /// <summary>
      /// 直线距离
      /// </summary>
      /// <param name="line1">直线1</param>
      /// <param name="line2">直线2</param>
      /// <returns>两线间距离</returns>
      public static double Distance(Line line1, Line line2)
      {
            double d = line1.GetClosestPointTo(line2.StartPoint, true).DistanceTo(line2.StartPoint);
            return d;
      }

sieben 发表于 2012-2-14 12:18:49

本帖最后由 sieben 于 2012-2-14 12:21 编辑


jiangfei200809 发表于 2012-7-20 16:34:29

可以这样 CAD提供了点到直线距离的方法,你可以使用原点(0,0)分别得到原点到这两条直线的距离,然后相减取绝对值
页: [1]
查看完整版本: 如何获得两条平行直线之间的距离?