点到直线的距离,斜率几乎相等的线到线的距离

 public static double PointToLine(PCADPoint p,PCADLine line)
        {
            //PCADVector v1 = p - line.startPoint;
            //PCADVector v2 = line.endPoint - line.startPoint;
            //double radian = DotProduct(v1, v2);
            //double dis = Math.Sin(v1.length);
            //return dis;

            double x1 = line.startPoint.x;
            double y1 = line.startPoint.y;
            double x2 = line.endPoint.x;
            double y2 = line.endPoint.y;
            double A = y2 - y1;
            double B = x1 - x2;
            double C = x2 * y1 - x1 * y2;//直线方程1
            double dis = (A * p.x + B * p.y + C) / Math.Sqrt(A * A + B * B);
            return -dis;

        }

        public static double LineToLine(PCADLine line1, PCADLine line2)
        {
            double x1 = line1.startPoint.x;
            double y1 = line1.startPoint.y;
            double x2 = line1.endPoint.x;
            double y2 = line1.endPoint.y;
            double A = y2 - y1;
            double B = x1 - x2;
            double C = x2 * y1 - x1 * y2;//直线方程1

            double x11 = line2.startPoint.x;
            double y11 = line2.startPoint.y;
            double x22 = line2.endPoint.x;
            double y22 = line2.endPoint.y;
            double A2 = y22 - y11;
            double B2 = x11 - x22;
            double C2= x22 * y11 - x11 * y22;//直线方程2

            double dis = Math.Abs((C - C2)) / Math.Sqrt((A * A2) + (B * B2));
            return dis;
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 求两条线的交点: 假设有两条直线分别为 $L_1$ 和 $L_2$,可以将它们表示成如下的一般式方程: $L_1: Ax+By+C_1=0$ $L_2: Dx+Ey+C_2=0$ 则两条直线的交点可以通过以下公式计算: $x=\frac{B C_2 - E C_1}{A E - B D}$ $y=\frac{D C_1 - A C_2}{A E - B D}$ 求点到线距离: 假设有一条直线 $L: Ax+By+C=0$,以及一个点 $P(x_0, y_0)$,则该点到直线距离可以通过以下公式计算: $dist=\frac{|A x_0 + B y_0 + C|}{\sqrt{A^2 + B^2}}$ 其中 $dist$ 表示点 $P$ 到直线 $L$ 的距离。 ### 回答2: 实现求两条线的交点和求点到线距离需要以下步骤: 求两条线的交点: 1. 首先,确定两条线的方程。比如,一条直线可以用一般式方程表示为Ax + By + C = 0,另一条直线可以用参数方程或斜截式方程表示。 2. 找到两条直线的交点,可以通过联立两个方程求解得到。如果两条直线平行或重合,则无交点;反之,计算两个直线的交点坐标。 求点到线距离: 1. 首先,确定直线的方程。同样,直线可以用一般式方程表示为Ax + By + C = 0。 2. 将待求点的坐标代入直线方程,得到点到直线距离公式:d = |(Ax0 + By0 + C)| / sqrt(A^2 + B^2),其中x0和y0为待求点的坐标。 需要注意的是,如果直线是通过两个已知点确定的,可以使用两点式或截距式来表示直线方程。 以上就是求两条线的交点和求点到线距离的基本步骤。具体实现时,可以通过编程语言或数学软件实现这些计算,并得到准确的结果。 ### 回答3: 求两条线的交点功能可以通过以下步骤实现: 1. 输入两条线的参数:线1的斜率k1和截距b1,线2的斜率k2和截距b2。 2. 判断两条线是否平行。如果斜率k1和k2相等,则两线平行,无交点;否则,进入下一步。 3. 使用联立方程解法,解出两条线的交点坐标(x, y): 将线1和线2的方程相等,得到k1x + b1 = k2x + b2; 化简为(k1 - k2)x = b2 - b1,解得x = (b2 - b1) / (k1 - k2); 将x的值代入任一方程,求解y的值。 4. 输出交点坐标(x, y),作为结果。 求点到线距离功能可以通过以下步骤实现: 1. 输入点的坐标(x0, y0)和直线的参数:斜率k和截距b。 2. 计算直线方程y = kx + b与点(x0, y0)之间的垂直距离d: 直线斜率直线斜率为-k; 垂直线的方程为y = -kx + c,将点(x0, y0)代入该方程求解c; 垂直线直线的交点为(x, y) = ((y0 - b + k * x0) / (k + 1 / k), (-k * (y0 - b + k * x0) / (k + 1 / k) + y0); 计算距离d = sqrt((x - x0)² + (y - y0)²); 3. 输出距离d,作为结果。 以上是实现求两条线的交点和求点到线距离两个功能的基本步骤,可以根据实际情况进行具体的编程实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值