zoukankan      html  css  js  c++  java
  • 检测线段是否有交集

    float  Vector2IsLeft(FVector v, FVector vStart, FVector vEnd)
    {
        return (vStart.X - v.X)*(vEnd.Y - v.Y) - (vEnd.X - v.X)*(vStart.Y - v.Y);
    }
    
    bool CheckCollision1(FVector vStart1, FVector vEnd1, FVector vStart2, FVector vEnd2)
    {
        static const float YD_EPS_REAL32 = 0.00000001f;
        float leftS, leftE;
        leftS = Vector2IsLeft(vStart1, vStart2, vEnd2);
        leftE = Vector2IsLeft(vEnd1, vStart2, vEnd2);
        if (leftS * leftE > YD_EPS_REAL32)
        {
            return false;       // vStart1, vEnd1在另一条直线的同侧
        }
    
        leftS = Vector2IsLeft(vStart2, vStart1, vEnd1);
        leftE = Vector2IsLeft(vEnd2, vStart1, vEnd1);
        if (leftS * leftE > YD_EPS_REAL32)
        {
            return false;       // vStart2, vEnd2在另一条直线的同侧
        }
    
        return true;
    }
  • 相关阅读:
    集合
    字典
    元组
    列表
    数字类型和字符串类型
    Python 数据类型
    jq的一点点
    常用到jq的ajax
    上传
    下载
  • 原文地址:https://www.cnblogs.com/ylwn817/p/12714278.html
Copyright © 2011-2022 走看看