【图形】点与直线位置判断(求点位于那两条直线之间)

应用情况:

给出一系列车道线(首尾端点),希望找出车位于哪个车道上。由于数据来源于图像投影,车道线彼此并不平行。

方案A:

假设车道线都在90度左右,则可直接利用点的x坐标与车道线两端平均x坐标距离进行判断。取x坐标距离最近的两条直线

方案B:

进一步推广到任意方向的直线,则可求点到车道线的距离。取点到直线距离最近的两条

参考:Point到直线 y = kx + b 距离 distance = abs(k * Point.x -  Point.y + b)/sqrt(k * k + 1);

方案C:

去除线段间的比例关系后,前面的方法将无法使用。

这里则计算点到相邻线段的4端点连线夹角。如果4个夹角(相邻连线间)和为360度,则为该对线段。

参考:顶点(x, y) 与边上2点(xa, ya), (xb, yb)的夹角 a = abs( arctan((ya-y)/(xa-x)) – arctan((yb-y)/(xb-x)) );

时间: 2024-10-22 15:17:05

【图形】点与直线位置判断(求点位于那两条直线之间)的相关文章

判断两条直线的位置关系 POJ 1269 Intersecting Lines

两条直线可能有三种关系:1.共线     2.平行(不包括共线)    3.相交. 那给定两条直线怎么判断他们的位置关系呢.还是用到向量的叉积 例题:POJ 1269 题意:这道题是给定四个点p1, p2, p3, p4,直线L1,L2分别穿过前两个和后两个点.来判断直线L1和L2的关系 这三种关系一个一个来看: 1. 共线. 如果两条直线共线的话,那么另外一条直线上的点一定在这一条直线上.所以p3在p1p2上,所以用get_direction(p1, p2, p3)来判断p3相对于p1p2的关

poj1039——计算几何 求直线与线段交点,判断两条直线是否相交

poj1039——计算几何  求直线与线段交点,判断两条直线是否相交 Pipe Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9439   Accepted: 2854 Description The GX Light Pipeline Company started to prepare bent pipes for the new transgalactic light pipeline. During the de

求两条直线(线段)的交点

转自: http://blog.csdn.net/dgq8211/article/details/7952825 如图,如何求得直线 AB 与直线 CD 的交点P? 以上内容摘自<算法艺术与信息学竞赛>. 思路就是利用叉积求得点P分线段DC的比,然后利用高中学习的定比分点坐标公式求得分点P的坐标. 看不懂的可以去复习下 定比分点 的知识. 1 #include <math.h> 2 #include <stdio.h> 3 #include <string.h&g

判断两条直线是否相交点

#pragma mark ------------ 判断两条直线是否相交 + (BOOL)checkLineIntersection:(CGPoint)p1 p2:(CGPoint)p2 p3:(CGPoint)p3 p4:(CGPoint)p4 {     CGFloat denominator = (p4.y - p3.y) * (p2.x - p1.x) - (p4.x - p3.x) * (p2.y - p1.y);          if (denominator == 0.0f) {

POJ1269:Intersecting Lines(判断两条直线的关系)

题目:POJ1269 题意:给你两条直线的坐标,判断两条直线是否共线.平行.相交,若相交,求出交点. 思路:直线相交判断.如果相交求交点. 首先先判断是否共线,之后判断是否平行,如果都不是就直接求交点了. #include <iostream> #include <string.h> #include <stdio.h> #include <algorithm> #include <math.h> #include <queue> #

求空间内两条直线的最近距离以及最近点的坐标(C++)

关键词:空间几何 用途:总有地方会用到吧 文章类型:C++函数展示 @Author:V_Shawn @Date:2016-11-19 @Lab: [email protected] 对于空间内的两条直线A,B我假设他们一定不平行,也不相交.若已知A上两点A1.A2,B上两点B1.B2,那么可以很容易得到两条直线的方程. 然后调用函数即可解得结果: 下面提供了一个用于解决这个问题的类: #include <math.h> //用于求解两条空间直线的最近距离,以及他们最近的两点坐标 //autho

求平面内两条直线的交点

The  and  coordinates of the point of intersection of two non-vertical lines can easily be found using the following substitutions and rearrangements. Suppose that two lines have the equations  and  where  and  are the slopes (gradients) of the lines

两条直线(顺逆时针判断)

struct point { double x,y; }a[Max]; double chaji(point p1,point p2) { return p1.x*p2.y-p1.y*p2.x; } double dot(point p1,point p2) { return p1.x*p2.x-p1.y*p2.y; } int ccw(point p0,point p1,point p2) { p1.x=p1.x-p0.x,p1.y=p1.y-p0.y; p2.x=p2.x-p0.x,p2.y

计算两条直线的交点(C#)

从其他地方看到的源码是有问题的. /// <summary> /// 计算两条直线的交点 /// </summary> /// <param name="lineFirstStar">L1的点1坐标</param> /// <param name="lineFirstEnd">L1的点2坐标</param> /// <param name="lineSecondStar"