首页 > 其他分享 >点到直线距离

点到直线距离

时间:2023-11-02 23:34:59浏览次数:44  
标签:p2 直线 p1 point Vector2 float 距离 点到

直线方程的一般式:ax+by+c=0

点p(x1, y1)到直线的距离:

 

 

//点到直线的距离(一般式表示直线)
public static float PointToLineDistance(Vector2 point, float a, float b, float c)
{
    //直线一般式: ax+by+c=0
    //点到直线的距离公式: |ax+by+c|/sqrt(a^2+b^2)
    float dist = Mathf.Abs(a * point.x + b * point.y + c) / Mathf.Sqrt(a * a + b * b);
    return dist;
}

 

//点到直线的距离(两点表示直线)
public static float PointToLineDistance2(Vector2 point, Vector2 p1, Vector2 p2)
{
    float a = p2.y - p1.y;
    float b = p1.x - p2.x;
    float c = p1.y * p2.x - p1.x * p2.y;
    return PointToLineDistance(point, a, b, c);
}

//点到直线的距离(点斜式表示直线)
public static float PointToLineDistance3(Vector2 point, float k, float t)
{
    //直线点斜式: y=kx+t
    //任取直线上的两点
    float x1 = 0;
    float y1 = t;
    float x2 = 1;
    float y2 = k + t;

    float a = y2 - y1;
    float b = x1 - x2;
    float c = y1 * x2 - x1 * y2;
    return PointToLineDistance(point, a, b, c);
}

 

参考

判断线段与圆是否相交_判断线段和圆相交-CSDN博客

 

标签:p2,直线,p1,point,Vector2,float,距离,点到
From: https://www.cnblogs.com/sailJs/p/17805886.html

相关文章

  • 线性代数 - 已知点求直线方程
    直线的表示方法点斜式:y=kx+t, 其中k为直线斜率,t为直线在y轴上的截距一般式:ax+by+c=0 求直线方程1) 已知直线上的两个点(x1,y1),(x2,y2),求直线ax+by+c=0a) 我们先转换成点斜式:b) 斜率可以根据已知的两点计算出来,所以a=y2-y1,b=x1-x2或a=y1-y2,b=x2-x1c) 因......
  • 直线是否相交以及交点
    直线的点斜公式y=kx+b,k为直线斜率,b为直线在y轴上的交点 两条直线平行则不相交, 否则就相交publicstaticboolIsLineIntersect(floatk1,floatb1,floatk2,floatb2,outVector2intersectPoint){intersectPoint=Vector2.zero;if(Mathf.Approximat......
  • 直线导轨的误差匹配度如何?
    直线导轨的误差匹配度是评估导轨之间配合精度的重要指标,导轨之间的配合精度越高,误差匹配度就会越好,反之则越差。在直线导轨的生产和加工过程中,每个导轨都会产生一定误差,例如平行误差、垂直误差、轨面平整度、滑块移动平稳度、重复定位精度等。这些误差会影响导轨之间的配合精度,从而......
  • Opencascad(C++)-建模-创建有界直线段
    文章目录1、前言2、用gp_Lin创建一条直线2.1gp_Lin类成员函数2.2创建一条直线2.3运行结果3、创建一条有界的直线段3.1功能说明3.2函数说明3.2创建直线段的代码3.3测试效果1、前言在Opencascad开发时,经常会遇到创建直线的情况,采用gp_Line创建的直线段是无界的,如果想创建......
  • 音乐智能体登场!我和杰伦的距离或许只差一个 MusicAgent!
    作者|付奶茶、ZenMoore利用AI完成音乐处理是一个多样化的领域,涵盖了数十种任务,从生成(例如音色合成)到音乐理解(例如音乐分类)。对于初学者、业余爱好者来说,很难精通、掌握所有任务来满足对于音乐处理上的需求。受到大型语言模型(LLMs)在任务自动化方面上的启发,北京大学和微软亚洲研究......
  • 直线模组怎么分类?
    直线模组是一种广泛应用于自动化设备、机器人、数控机床、电子设备等领域的精密传动系统。根据不同的分类方式,直线模组可分为多种类型。一、按照轴数分类1、单轴直线模组:只有一个移动轴的直线模组,通常用于简单的直线运动和定位。2、双轴直线模组:有两个移动轴的直线模组,可以实现X和Y......
  • 蓝牙信道探测(Channel Sounding): 高精度距离测量
    https://mp.weixin.qq.com/s/2V9NfRvyuLRwVph7nzA3ng 信道探测(Channel Sounding) CS引入了79个物理信道,CS使用不同信道的接收和发送信号之间的相移以及RTT(往返时间)测量来进行距离估算并相互修正,精度更高。 ​BLECS提供一种相位测距(PBR:phase‑basedranging)方案,主要......
  • AcWing 902. 最短编辑距离
    题目给定两个字符串$A$和$B$,现在要将$A$经过若干操作变为$B$,可进行的操作有:删除–将字符串$A$中的某个字符删除。插入–在字符串$A$的某个位置插入某个字符。替换–将字符串$A$中的某个字符替换为另一个字符。现在请你求出,将$A$变为$B$至少需要进行多少次操......
  • EM@直线的参数方程
    文章目录abstract直线参数方程从运动轨迹的角度从普通方程转换导参数方程向量法参数方程间的转换从第3型转化为第2型方程组例abstract平面直线的参数方程的3种表示形式直线参数方程间的转换直线参数方程以下从不同角度推导直线参数方程分别记为第1,2,3形式参数方程从运动轨迹的角......
  • [Leetcode] 0821. 字符的最短距离
    821.字符的最短距离题目描述给你一个字符串s和一个字符c,且c是s中出现过的字符。返回一个整数数组answer,其中answer.length==s.length且answer[i]是s中从下标i到离它最近的字符c的距离。两个下标 i和j之间的距离为abs(i-j),其中abs是绝......