首页 > 其他分享 >向量叉乘判断两点是否在线段同侧

向量叉乘判断两点是否在线段同侧

时间:2023-11-05 21:23:38浏览次数:37  
标签:p2 同侧 ab 线段 p1 Vector2 向量

ap1×ab与ap2×ab的结果异号,则表示两点在线段两侧;同号则表示在线段同侧

 

有一个点在线段上或两个点都在线段上,当做在线段同侧处理

 

//两点是否在线段同侧
public static bool IsTwoPointSameSideOfSegment(Vector2 a, Vector2 b, Vector2 p1, Vector2 p2)
{
    var a_p1 = p1 - a;
    var ab = b - a;
    float cross1 = a_p1.x * ab.y - a_p1.y * ab.x;
    if (Mathf.Approximately(cross1, 0)) //p1与线段ab共线
        return true;

    var a_p2 = p2 - a;
    float cross2 = a_p2.x * ab.y - a_p2.y * ab.x;
    if (Mathf.Approximately(cross2, 0)) //p2与线段ab共线
        return true;

    var result = cross1 * cross2;
    return result > 0; //叉乘结果同符号, 则表示同侧
}

 

参考

【Computer Graphics】点到三角形距离及内外判断_点到三角形的距离-CSDN博客

 

标签:p2,同侧,ab,线段,p1,Vector2,向量
From: https://www.cnblogs.com/sailJs/p/17811134.html

相关文章

  • 用线段树来接树状数组类的问题
    大致解决的问题就是区间查询以及单点的修改#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=5e5+10;inta[N],tag[N<<2];struct{ struct{ intl,r,sum; }tr[N<<2]; voidpush_up(inti){ tr[i].sum=tr[i<<1].sum+tr[i<......
  • python用支持向量机回归(SVR)模型分析用电量预测电力消费|附代码数据
    全文链接:http://tecdat.cn/?p=23921最近我们被客户要求撰写关于支持向量机回归的研究报告,包括一些图形和统计输出。本文描述了训练支持向量回归模型的过程,该模型用于预测基于几个天气变量、一天中的某个小时、以及这一天是周末/假日/在家工作日还是普通工作日的用电量关于支持......
  • 向量点乘判断点是否在线段上
    几种要考虑的情况1)点p和线段断点a,b重叠,pa•ab=pa.x*pa.y+ab.x*ab.y=02) pa,pb共线,则pa×pb=02-1)p在线段ab上,此时pa,pb的夹角为180度,cos(180)=-1,pa•ab=-|pa|*|ab|2-2)p在线段ab外,此时pa,pb的夹角为0度,cos(0)=1,pa•ab=|pa|*|ab|4)pa,pb不共线,cos(钝角)<0,cos(......
  • 【数值分析】向量和矩阵的范数
    向量范数一范数:\(||x||_1=|x_1|+|x_2|+\dots+|x_n|\)二范数:\(||x||_2=\sqrt{|x_1|^2+|x_2|^2+\dots+|x_n|^2}\)p范数:\(||x||_p=\sqrt[p]{|x_1|^p+|x_2|^p+\dots+|x_n|^p},\quadp\in[1,\infty)\)\(\infty\)范数:\(||x||_p=\max......
  • 点到线段的距离2
    几种要考虑的情况1)点和线段两端重叠的情况2)点在线段两侧的情况  p在另一侧的情况以此类推3)点在线段中间的情况   //点到线段的距离publicstaticfloatPointToSegmentDistance2(Vector2p,Vector2a,Vector2b){//点和线段端点重合varap=p......
  • 【风电预测】基于阿基米德算法优化最小二乘支持向量机AOA-lssvm实现数风电预测附matla
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • 【lssvm回归预测】基于天鹰算法优化最小二乘支持向量机AO-lssvm实现数据回归预测附mat
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • 树状数组用线段树来写
    #include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=5e5+10;inta[N],tag[N<<2];struct{ struct{ intl,r,sum; }tr[N<<2]; voidpush_up(inti){ tr[i].sum=tr[i<<1].sum+tr[i<<1|1].sum; } voidbuild(inti......
  • 神经网络基础篇:向量化(Vectorization)
    向量化向量化是非常基础的去除代码中for循环的艺术,在深度学习安全领域、深度学习实践中,会经常发现自己训练大数据集,因为深度学习算法处理大数据集效果很棒,所以的代码运行速度非常重要,否则如果在大数据集上,代码可能花费很长时间去运行,将要等待非常长的时间去得到结果。所以在深度......
  • F. Unique Occurrences(线段树分治+可撤销并查集)
    F.UniqueOccurrences假如我们删除所有权值为x的边,那么所有权值为x的边对答案的贡献就是\(\sumsz[u]*sz[v]\)sz表示两个联通块的大小,且(u,v)的边权为x我们可以用可撤销并查集来进行处理,简单来说就是将一条边的存在时间看作区间,然后挂到线段树上,然后遍历到每个叶子的时候进行......