| 44 | double rad_to_deg(double r) { return (r * 180.0 / PI); } |
| 45 | double deg_to_rad(double d) { return (d * PI / 180.0); } |
| 46 | double get_angle(PT a, PT b) { |
| 47 | double costheta = dot(a, b) / a.norm() / b.norm(); |
| 48 | return acos(max((double)-1.0, min((double)1.0, costheta))); |
| 49 | } |
| 50 | double cross2(PT a, PT b, PT c) { return cross(b - a, c - a); } |
| 51 | // intersection point between ab and cd assuming unique intersection exists |
| 52 | PT line_line_intersection(PT a, PT b, PT c, PT d) { |