距离 - 点到直线距离 - 公式法
直线方程的一般式: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); }
参考
分类:
2d碰撞检测 / 1_点
, 2d碰撞检测
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!