question: public void fill_ellipse_arr ( PlaEllipse [ ] p_ellipse_arr , Graphics p_g , Color p_color , double p_translucency_factor ) { if ( p_color == null ) return ; if ( p_ellipse_arr . length <= 0 ) return ; GeneralPath draw_path = new GeneralPath ( GeneralPath . WIND_EVEN_ODD ) ; for ( PlaEllipse curr_ellipse : p_ellipse_arr ) { Point2D center = coordinate_transform . board_to_screen ( curr_ellipse . center ) ; double bigger_radius = coordinate_transform . board_to_screen ( curr_ellipse . bigger_radius ) ; if ( ! point_near_rectangle ( center . getX ( ) , center . getY ( ) , ( Rectangle ) p_g . getClip ( ) , bigger_radius ) ) { continue ; } double smaller_radius = coordinate_transform . board_to_screen ( curr_ellipse . smaller_radius ) ; Ellipse2D draw_ellipse = new Ellipse2D . Double ( center . getX ( ) - bigger_radius , center . getY ( ) - smaller_radius , 2 * bigger_radius , 2 * smaller_radius ) ; double rotation = coordinate_transform . board_to_screen_angle ( curr_ellipse . rotation ) ; AffineTransform affine_transform = new AffineTransform ( ) ; affine_transform . rotate ( rotation , center . getX ( ) , center . getY ( ) ) ; Shape rotated_ellipse = affine_transform . createTransformedShape ( draw_ellipse ) ; draw_path . append ( rotated_ellipse , false ) ; } Graphics2D g2 = ( Graphics2D ) p_g ; g2 . setColor ( p_color ) ; set_translucency ( g2 , p_translucency_factor ) ; g2 . setRenderingHint ( RenderingHints . KEY_ANTIALIASING , RenderingHints . VALUE_ANTIALIAS_ON ) ; g2 . fill ( draw_path ) ; }
target:  Draws the interiour of an array of ellipses. Ellipses contained in an other ellipse are treated as holes.