I believe the problem is that you are using BeginInvoke()
instead of Invoke
. This does not wait for one angle of rotation to complete before the next one is called, so the calls are all stacked on top of eachother.
Try it with Dispatcher.Invoke()
or put the whole loop inside one Dispatcher.BeginInvoke()
and see if the results are more to your satisfaction.