Re: Fixed Typo in Code---> Re: updating a simulation

*To*: mathgroup at smc.vnet.net*Subject*: [mg130081] Re: Fixed Typo in Code---> Re: updating a simulation*From*: Bob Hanlon <hanlonr357 at gmail.com>*Date*: Fri, 8 Mar 2013 06:22:43 -0500 (EST)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*Delivered-to*: l-mathgroup@wolfram.com*Delivered-to*: mathgroup-newout@smc.vnet.net*Delivered-to*: mathgroup-newsend@smc.vnet.net*References*: <9C229A0A-D12F-4D3E-9B5F-7FA8B918CFE6@mit.edu>

Use of If structure seems reasonable. Recommend that you use a separate color for the latest point/disk so that the current position is evident. Other minor changes made. randomStep[bias_, stepList_] := Module[ {angle = RandomVariate[ NormalDistribution[bias, 1]]}, Join[stepList, {Last[stepList] + {Cos[angle], Sin[angle]}}]]; walkerGraphic[stepList_, range_] := Graphics[{ Gray, PointSize[.04], Point@Most@stepList, Blue, Point@Last@stepList}, PlotRange -> range {{-1, 1}, {-1, 1}}]; DynamicModule[{walkerPath = {{0, 0}}}, Manipulate[ If[keepWalking, walkerPath = randomStep[bias, walkerPath]]; walkerGraphic[walkerPath, range], Row[{ Control[ {{keepWalking, False, "Keep Walking"}, {True, False}}], Spacer[20], Button["Reset", reset = False; keepWalking = False; walkerPath = {{0, 0}}, ImageSize -> Tiny, BaseStyle -> {8}] }], Delimiter, {{range, 20, "Range"}, 0, 100}, {{bias, 0, "Bias"}, -Pi, Pi, AngularGauge[##, ImageSize -> 160, ScaleOrigin -> {{-4 Pi, 4 Pi}, 1}] &}]] Bob Hanlon On Thu, Mar 7, 2013 at 10:47 PM, W Craig Carter <ccarter at mit.edu> wrote: > On previous message, there is a typo in the example code, please use this instead: > > randomStep[bias_, stepList_] := > Module[{angle = RandomVariate[NormalDistribution[bias, 1]]}, > Join[stepList, {Last[stepList] + {Cos[angle], Sin[angle]}}]] > > walkerGraphic[stepList_, range_] := > Graphics[GraphicsComplex[stepList, Disk /@ Range[Length[stepList]]], > PlotRange -> range {{-1, 1}, {-1, 1}}] > > DynamicModule[{walkerPath = {{0, 0}}}, > Manipulate[ > If[keepWalking,(*kludge warning---testing for If[ True...] seems inefficient*) > walkerPath = randomStep[bias, walkerPath]]; > If[reset, reset = False; keepWalking = False; > walkerPath = {{0, 0}}]; > walkerGraphic[walkerPath, > range], {{keepWalking, False}, {True, False}}, {{reset, > False}, {True, False}}, Delimiter, {{range, 20}, 0, 100}, > {{bias, 0}, -Pi, Pi, > AngularGauge[##, ImageSize -> 160, > ScaleOrigin -> {{-4 Pi, 4 Pi}, 1}] &}]] > > > > W Craig Carter > Professor of Materials Science, MIT > > > > On Mar 7, 13, at 17:16 PM, W Craig Carter wrote: > >> I *think* I've asked this question before, but I can't find it on mathgroup. In any case, I don't know the answer now. >> >> Here is a simple example of a Manipulate that updates a graphic as long as a boolean is true. This method seems like a kludge to me---is it? If so, what would be a better way to do this. >> >> This is a constructed example, the real case I am looking at is much more involved; but kudos to anyone who can make a reasonable facsimile of their signature by adjusting the random walker's bias.... >> >> randomStep[bias_, stepList_] := >> Module[{angle = RandomVariate[NormalDistribution[bias, 1]]}, >> Join[stepList, {Last[stepList] + {Cos[angle], Sin[angle]}}]] >> >> walkerGraphic[stepList_, range_] := >> Graphics[GraphicsComplex[stepList, Disk /@ Range[Length[stepList]]], >> PlotRange -> range {{-1, 1}, {-1, 1}}] >> >> DynamicModule[ >> {walkerPath = {{0, 0}}}, >> Manipulate[ >> If[keepWalking, (* kludge warning---testing for If[True...] seems inefficient *) >> walkerPath = randomStep[bias, walkerPath] >> ]; >> If[reset, >> reset = False; keepWalking = False; >> walkerPath = {{0, 0}} >> ]; >> walkerGraphic[walkerPath, range], >> {{keepWalking, False}, {True, False}}, >> {{reset, False}, {True, False}}, >> Delimiter, >> {{range, 20}, 0, 100}, >> {{a, 0}, -Pi, Pi, >> AngularGauge[##, ImageSize -> 160 , >> ScaleOrigin -> {{-4 Pi, 4 Pi}, 1}] &} >> ] >> ] >> >> >> >> W Craig Carter >> Professor of Materials Science, MIT >> >>

**Follow-Ups**:**Re: Fixed Typo in Code---> Re: updating a simulation***From:*W Craig Carter <ccarter@MIT.EDU>