Or to put it simply, how would one select random point (e.g. in a circle) using Polar Coordinates??
Roger > On Sep 3, 2020, at 8:17 AM, Roger Guay via use-livecode > <use-livecode@lists.runrev.com> wrote: > > Jerry, > > You’ve done a very nice job of describing what’s actually(?) happening in my > code, but I think you missed the point of my question. > You agree that if you simply sample random pixels then the ratio of a random > pick inside the smaller circle will depend on the area of the circles. > And, if I pick a random x and y within the concentric circles of radius R and > 2R, ¼ of the time they will lie in the smaller circle and ¾ of the time in > the bigger. > So, pick any random x and y and convert to radial coordinates. Everything > should work! > In my code I pick a random angle and a random radius (radial coordinates) > within the limits of the larger circle, thus picking random points within the > area of the larger circle, yet I get ½ (which you say is the right answer). > My intent was to pick random points (using radial coordinates) for which the > result should be ¼! > > What’s wrong with my code? > > Thanks, > > Roger > >> On Sep 2, 2020, at 8:27 PM, Jerry Jensen via use-livecode >> <use-livecode@lists.runrev.com> wrote: >> >> 1/2 is the right answer. >> >> Take your drawing of the circles. Cut a verrrryy thin radial slice from the >> center to the outside circle. So thin that it is just a line. >> >> Now think of how likely a random point on that line will be in the part of >> the line that was in the smaller circle. The part that was from the smaller >> circle is HALF as long as the entire line. >> >> Now add up all the possible positions of that line. Why would that change >> the answer? >> >> Congratulations, you understand integrals! >> .Jerry >> >>> On Sep 2, 2020, at 7:38 PM, Roger Guay via use-livecode >>> <use-livecode@lists.runrev.com> wrote: >>> >>> Your chance to be Genius du Jour: >>> >>> If I construct 2 concentric circles, one being half the radius of the >>> larger, then simple math shows that the smaller circle has an area ¼ the >>> area of the larger. >>> Now if I generate a random point within the radius of the larger circle, I >>> should expect that the probability of it landing in the smaller circle to >>> be ¼. >>> But, I must be doing something wrong because I get ½ ! >>> >>> Here is my script: >>> >>> on mouseDown >>> >>> getStuff >>> >>> end mouseDown >>> >>> >>> local tR, tTheta, tX0, tY0, tX1, tY1, tTotCount, tL, tLongCount >>> >>> on getStuff >>> >>> put item 1 of the loc of grc OuterCircle into tx0 >>> >>> put item 2 of the loc of grc OuterCircle into tY0 >>> >>> put "" into tTotCount >>> >>> put "" into tLongCount >>> >>> emptyFlds >>> >>> end getStuff >>> >>> >>> on mouseUp >>> >>> lock screen >>> >>> repeat 1000 >>> >>> put random(200) into tR -- 200 is half the width of the larger >>> circle >>> >>> if tR > 1 then >>> >>> ## put random(2*pi) into tTheta1 >>> >>> get random(360) >>> >>> put it*pi/180 into tTheta1 >>> >>> put tR*cos(tTheta1) into tX1 >>> put tR*sin(tTheta1) into tY1 >>> >>> set the loc of grc Ptgrc to tX0 + tX1, tY0 - tY1 --- >>> grc Ptgrc is a 2 pixle oval >>> >>> if intersect(grc Ptgrc, grc InnerCircle, "opaque >>> Pixels") then add 1 to tLongCount >>> >>> add 1 to tTotCount >>> >>> end if >>> >>> end repeat >>> put tTotCount into fld "totcountFld" >>> >>> put tLongCount into fld “LongCountFld" >>> >>> put tLongCount/tTotCount into fld "RatioFld" >>> >>> unlock screen >>> >>> end mouseUp >>> >>> >>> Apparently, this does not generate a random point within the larger circle! >>> Can someone please tell me what’s wrong here? >>> >>> Thanks, >>> Roger >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode@lists.runrev.com >>> Please visit this url to subscribe, unsubscribe and manage your >>> subscription preferences: >>> http://lists.runrev.com/mailman/listinfo/use-livecode >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode