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

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=p2.y-p0.y;
    if(chaji(p1,p2)>0) return 1;  //逆时针
    if(chaji(p1,p2)<0) return 2;  //顺时针
    if(dot(p1,p2)<0) return 3;   // 两条直线共线且相反
    if(p1.x*p1.x+p1.y*p1.y<p2.x*p2.x+p2.y*p2.y) return 4;  //方向 p0->p1->p2
    return 5;   //p2在中间 

}

原文地址:https://www.cnblogs.com/ww123/p/9038516.html

时间: 2024-10-04 17:17:22

两条直线(顺逆时针判断)的相关文章

判断两条直线是否相交点

#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) {

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

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

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

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

应用情况: 给出一系列车道线(首尾端点),希望找出车位于哪个车道上.由于数据来源于图像投影,车道线彼此并不平行. 方案A: 假设车道线都在90度左右,则可直接利用点的x坐标与车道线两端平均x坐标距离进行判断.取x坐标距离最近的两条直线 方案B: 进一步推广到任意方向的直线,则可求点到车道线的距离.取点到直线距离最近的两条 参考:Point到直线 y = kx + b 距离 distance = abs(k * Point.x -  Point.y + b)/sqrt(k * k + 1); 方案

判断两条直线的位置关系 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的关

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

转自: 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

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

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

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

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

渐行渐远的两条直线

两条直线曾经交汇过,之后便渐行渐远.毫无交集的两个时空,要怎样才可以相遇.除非,以光年的速度.一直努力屏蔽内心真实的需求,只为了固执地想维持曾经的美好.就好像,你不愿意走,可是还是会被时间推着往前走,心境和认知最终还是超越了爱情.想扑腾几下,却也终究是徒劳无功,因为,时光无法倒流.