Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.math.mathematica

Topic: Fixed Typo in Code---> Re: updating a simulation within Manipulate.
Replies: 5   Last Post: Mar 9, 2013 5:25 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Bob Hanlon

Posts: 895
Registered: 10/29/11
Re: Fixed Typo in Code---> Re: updating a simulation
Posted: Mar 8, 2013 6:21 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

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@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
>>
>>





Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.