首页 > 其他分享 >计算直线的斜率

计算直线的斜率

时间:2022-11-29 14:26:22浏览次数:33  
标签:直线 set int 斜率 给定 计算 单位向量

在二维平面直角坐标系中,只要给定了两点(不重合),就能确定唯一一条直线,但当直线平行或垂直与x轴时,x或y的系数将为0,不方便存储。
不过,既然给定了两个点,我们可以直接用单位向量表示一条直线的斜率。

set<pair<int, int>> S;
    for (int i = 2; i <= n; ++i)
    {
        int dx = p[i].x - p[1].x, dy = p[i].y - p[1].y;
        int d = abs(__gcd(dx, dy));//gcd可能为负数,取绝对值
        if (dx < 0)//将向量的方向统一为从左向右
            dx = -dx, dy = -dy;
        S.insert({dx / d, dy / d});//判断有无重复斜率
    }

标签:直线,set,int,斜率,给定,计算,单位向量
From: https://www.cnblogs.com/hetailang/p/16935272.html

相关文章