handle degenerate radius<0