use bitmapContext to create wheelColor image first, using image instead of do calculation in drawRect. This will improve performance when invalidate the view.