Hi guys,
First off: a compensation rule will cause a normal distribution rather than a homogenous distribution of angles. See
http://www.contextfreeart.org/gallery/view.php?id=818 .
Now, as to exactly why the angles produced are non-homogenous using the first proposed solution by JodawZnev:
rule RandomRotate 360 { RandomRotate {r 1}}
The chance that this thing stops on the 1st iteration is 1/360.
2nd: (359/360) * (1/360) ........ it has to 'miss' the first one and 'hit' the second.
3rd: (359/360)*(359/360)*(1/360)
nth: ((359/360)^(n-1))*1/360
hence 359th: 0.37*1/360.... only 37% as likely to come out as the the first iteration!
You will agree that the probability that it stops at iteration i is greater than the probability of it stopping at i+1, although marginally.
The fact that the thing goes back around the circle if it goes past 360 does not compensate (i think you can work that one out).
This effect can be reduced to the point of being negligeable by increasing iteration rate:
rule RandomRotate 50000 { RandomRotate {r 1}}
Now, the chance of it stopping at 1 and at 360 are virtually identical:
(49,999/50,000)^360 = 0.993 is close enough to 1 to give the desired effect.... But it will take longer to render............
Does this clear things up enough?