question: 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 ) ; }
target:  Rotates this FloatPoints by p_angle ( in radian ) around the p_pole.