美文网首页
unity 计算直线的交点与直线的是否相交

unity 计算直线的交点与直线的是否相交

作者: WOTTOW | 来源:发表于2020-08-22 16:26 被阅读0次
 计算交点:
   private float Cross(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4)
    {
        return (p2.x - p1.x) * (p4.y - p3.y) - (p2.y - p1.y) * (p4.x - p3.x);
    }
    private float Area(Vector2 p1, Vector2 p2, Vector2 p3)
    {
        return Cross(p1, p2, p1, p3);
    }
    private float fArea(Vector2 p1, Vector2 p2, Vector2 p3)
    {
        return Mathf.Abs(Area(p1, p2, p3));
    }
    private Vector2 Inter(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4)
    {
        float s1 = fArea(p1, p2, p3), s2 = fArea(p1, p2, p4);
        return new Vector2((p4.x * s1 + p3.x * s2) / (s1 + s2), (p4.y * s1 + p3.y * s2) / (s1 + s2));
    }

 计算是否相交:
    bool IsIntersection(Vector3 a, Vector3 b, Vector3 c, Vector3 d)
    {
        var crossA = Mathf.Sign(Vector3.Cross(d - c, a - c).y);
        var crossB = Mathf.Sign(Vector3.Cross(d - c, b - c).y);

        if (Mathf.Approximately(crossA, crossB)) return false;

        var crossC = Mathf.Sign(Vector3.Cross(b - a, c - a).y);
        var crossD = Mathf.Sign(Vector3.Cross(b - a, d - a).y);

        if (Mathf.Approximately(crossC, crossD)) return false;

        return true;
    }

相关文章

  • unity 计算直线的交点与直线的是否相交

  • 求直线相交点

    一. 两条直线相交点y0 = a0x0 + b0y1 = a1x1 + b1 两条直线的关系:平行、重合、相交一点...

  • 1 几何学中用到的一些方法

    1.点到直线的距离 2.获取点在直线上的垂直投影点 3.获取两直线交点 4.获取线段与直线的交点 5.点是否在线段...

  • 直线相交产生的角:对顶角

    欢迎关注公z号:沈阳奥数 若两条直线只有一个公共交点,称这两条直线为相交线。不相交的两条直线角做平行线。 两条直线...

  • 直线与圆的位置关系

    直线与圆,交点,圆心到直线的距离d与半径r 相切……1,

  • 直线交点

    直线可用直线上一点P。与方向向量v表示,直线上的所有点可以表示为P=P。+tv,其中t称为参数。已知直线上两个不同...

  • 使用Python判断线段是否与矩形相交

    直线相交的判定 我们在初等几何中学过如何判断两条直线是否相交。在欧几里得平面上,两条直线要么平行,要么相交,要么重...

  • 线说人生

    人生轨迹,就像曲线,人的一生,就在线中。 线分直线与曲线。直线又有相交直线,平行直线以及射线。曲线又有有限相交曲线...

  • 相交的直线

    总感觉 你我是两个点 从遥远的两个不相干的方向 通过位移 一点点靠近 一点点没了距离 直到相遇 可欣慰过后 突然发...

  • 直线交点个数公式,直线分割平面练习题以及答案与解析

    下面是直线交点个数,如何减少交点,直线分割平面个数的相应练习题。有时间的同学可以做一做。 ①平面内两两相交的5条直...

网友评论

      本文标题:unity 计算直线的交点与直线的是否相交

      本文链接:https://www.haomeiwen.com/subject/nnsecktx.html