Esempio n. 1
0
bool SLine::is_vertical_to(SLine &other_line, int epsilon)
{
    int dot_prod = dot_product(other_line);
    if(epsilon)
    {
        //calculate
        double norm1 = norm();
        double norm2 = other_line.norm();
        double cosfi = dot_prod/norm1/norm2;
        double fi = acos(cosfi);
        if(std::abs(DEGREE_TO_RAD(90.0)-fi) < epsilon)
            return true;
    }
    else
        return static_cast<bool>(std::abs(dot_prod) < 0.000001);
    return false;
}
Esempio n. 2
0
bool SLine::is_parallel_to(SLine &other_line, int epsilon)
{
    double dot_prod = static_cast<double>(dot_product(other_line));
    if(dot_prod < 0.0000001)
        return false;
    double norm1 = norm();
    double norm2 = other_line.norm();
    double cosfi = dot_prod/norm1/norm2;
    double fi = acos(cosfi);
    double diff = std::abs(DEGREE_TO_RAD(0.0)-fi);
    if(epsilon)
    {
        if(diff < epsilon)
        //calculate
            return true;
    }
    else
    {
        return static_cast<bool>(std::abs(fi) < 0.000001);
    }
    return false;
}