my @clips = ( { cx => $X * 0.500, cy => $Y * 0.4, rx2 => ( $X * 0.295 )**2, ry2 => ( $Y * 0.40 )**2 }, { cx => $X * 0.500, cy => $Y * 0.6, rx2 => ( $X * 0.390 )**2, ry2 => ( $Y * 0.34 )**2 }, { cx => $X * 0.428, cy => $Y * 0.748, rx2 => ( $X * 0.067 )**2, ry2 => ( $Y * 0.038)**2 }, ... }; #### sub clip { my( $x, $y ) = @_; return 1 if ( $x - $clips[0]{cx} )**2 / $clips[0]{rx2} + ( $y - $clips[0]{cy} )**2 / $clips[0]{ry2} < 1; return 1 if ( $x - $clips[1]{cx} )**2 / $clips[1]{rx2} + ( $y - $clips[1]{cy} )**2 / $clips[1]{ry2} < 1; return 1 if ( $x - $clips[2]{cx} )**2 / $clips[2]{rx2} + ( $y - $clips[2]{cy} )**2 / $clips[2]{ry2} < 1; ... return 0; }