I want to draw pictrue like this:
My code is:
mycountry=BoundaryDiscretizeGraphics@CountryData["China","Polygon"];
list={Disk[RandomPoint[mycountry],RandomReal[0.01]]};
While[Length[list]<50,disk=Disk[center=
RandomPoint[mycountry],r=RandomReal[{1,5}]];If[And@@((EuclideanDistance[center,
#[[1]]]>r+#[[2]])&/@list),
AppendTo[list,disk]]]//AbsoluteTiming
(*{19.357, Null}*)
Graphics[Transpose[{RandomColor[Hue[1/3,
NormalDistribution[.6,.2],NormalDistribution[.6,.07]],list//Length],Disk@@@list}]]
As you see,The way ahead of me is long,the Length[list] is just 50,but the time is 19s.Then I use the @belisarius 's SameTest in here,Then the While can be:
list={Disk[RandomPoint[mycountry],RandomReal[0.01]]};
BlockRandom@While[Length[list]<50,disk=Disk[RandomPoint[mycountry],
RandomReal[{1,5}]];list=Union[Append[list,disk],SameTest->(EuclideanDistance[#1[[1]],#2[[1]]]<(#1[[2]]+#2[[2]])&)]]//AbsoluteTiming
(*{44.0782, Null}*)
Although I have tried SameTest->(EuclideanDistance[#1[[1]],#2[[1]]]<(#1[[2]]+#2[[2]])&),SameTest -> (! RegionAlmostDisjointQ[{#1, #2}] &)andSameTest->(!RegionRegionDisjoint[#1,#2]&),The speed is slow still.By the way,I found a bug in a undocument function of Region`RegionSubset,such as
If[Region`RegionSubset[disk,mycountry]&&And@@((EuclideanDistance[center,
#[[1]]]>r+#[[2]])&/@list),AppendTo[list,disk]]
The Region`RegionSubset don't work.So anybody can try a faster version to me?
ps:(and how can I input "`" normally in stackexchange?)

