public PlaPointFloat rotate_rad(double p_rad_angle,PlaPointFloat p_pole){
  if (p_rad_angle == 0)   return this;
  double dx=v_x - p_pole.v_x;
  double dy=v_y - p_pole.v_y;
  double sin_angle=Math.sin(p_rad_angle);
  double cos_angle=Math.cos(p_rad_angle);
  double new_dx=dx * cos_angle - dy * sin_angle;
  double new_dy=dx * sin_angle + dy * cos_angle;
  return new PlaPointFloat(p_pole.v_x + new_dx,p_pole.v_y + new_dy);
}

public PlaPointFloat rotate_rad ( double p_rad_angle , PlaPointFloat p_pole ) { if ( p_rad_angle == 0 ) return this ; double dx = v_x - p_pole . v_x ; double dy = v_y - p_pole . v_y ; double sin_angle = Math . sin ( p_rad_angle ) ; double cos_angle = Math . cos ( p_rad_angle ) ; double new_dx = dx * cos_angle - dy * sin_angle ; double new_dy = dx * sin_angle + dy * cos_angle ; return new PlaPointFloat ( p_pole . v_x + new_dx , p_pole . v_y + new_dy ) ; }
rotates this floatpoints by p_angle ( in radian ) around the p_pole .
