+ LinAl::Vector<float, 2> r1 = c.point-entity1.position;
+ LinAl::Vector<float, 2> r2 = c.point-entity2.position;
+ LinAl::Vector<float, 2> v_p1 = entity1.velocity+LinAl::Vector<float, 2>(-r1.y, r1.x)*entity1.angular_velocity.radians();
+ LinAl::Vector<float, 2> v_p2 = entity2.velocity+LinAl::Vector<float, 2>(-r2.y, r2.x)*entity2.angular_velocity.radians();
+ LinAl::Vector<float, 2> v_rel = v_p2-v_p1;
+ LinAl::Vector<float, 2> tangent = v_rel-c.normal*inner_product(v_rel, c.normal);
+ float v_tan = tangent.norm();
+ tangent = (v_tan>1e-5 ? normalize(tangent) : LinAl::Vector<float, 2>(-c.normal.y, c.normal.x));