示例#1
0
Angles Vec2D::angles_relative_to_triangle(const reference_triangle_t * t) const
{
    Vec2D PA = Vec2D(t->point_a) - *this;
    Vec2D PB = Vec2D(t->point_b) - *this;
    Vec2D PC = Vec2D(t->point_c) - *this;

    float alpha_ = PB.directed_angle_to(PC);
    float beta_ = PC.directed_angle_to(PA);
    float gamma_ = PA.directed_angle_to(PB);

    Angles result;
    result.alpha = alpha_;
    result.beta = beta_;
    result.gamma = gamma_;

    assert(std::fabs(alpha_ + beta_ + gamma_ - 2 * M_PI) < 0.0001);

    return result;
}