<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Mathematica 问答社区 - 分类 '动态交互' 的近期问答</title>
<link>https://mmaqa.com/qa/qa/%E5%8A%A8-%E6%80%81-%E4%BA%A4-%E4%BA%92</link>
<description>Powered by Question2Answer</description>
<item>
<title>已回答：DynamicModule中如何用InfiniteLine画直线</title>
<link>https://mmaqa.com/qa/2717/dynamicmoduleinfiniteline?show=2718#a2718</link>
<description>

&lt;pre data-pbcklang=&quot;prettyprint lang-mma&quot; data-pbcktabsize=&quot;4&quot; class=&quot;prettyprint linenums lang-prettyprint lang-mma&quot;&gt;f[x_] := Sin[x];
tran[v_] := {First@v, f@First@v};
DynamicModule[{p = {1, f[1]}, q = {2, f[2]}}, 
 LocatorPane[Dynamic[{p, q}, ({p, q} = tran /@ #) &amp;amp;], 
  Dynamic@Show[Plot[f[x], {x, -5, 5}], 
    Graphics[{InfiniteLine[{p, q}]}]]]]&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;</description>
<category>动态交互</category>
<guid isPermaLink="true">https://mmaqa.com/qa/2717/dynamicmoduleinfiniteline?show=2718#a2718</guid>
<pubDate>Sat, 18 Apr 2020 15:05:35 +0000</pubDate>
</item>
<item>
<title>已回答：有没有快捷键可以调出特殊字符面板？</title>
<link>https://mmaqa.com/qa/2656/?show=2657#a2657</link>
<description>

&lt;p&gt;在Windows系统下，特殊字符面板的默认路径：C:\Program Files\Wolfram Research\Mathematica\12.0\SystemFiles\FrontEnd\Palettes\SpecialCharacters.nb&lt;/p&gt;

&lt;p&gt;然后在Mathematica中增加启动它的快捷键即可：&lt;/p&gt;

&lt;ol&gt;

&lt;li&gt;关闭Mathematica&lt;/li&gt;

&lt;li&gt;用记事本打开（管理员权限）：C:\Program Files\Wolfram Research\Mathematica\12.0\SystemFiles\FrontEnd\TextResources\Windows\KeyEventTranslations.tr&lt;/li&gt;

&lt;li&gt;在尾部增加下面的代码（&lt;span style=&quot;color:#d35400&quot;&gt;注意：不要漏掉最开始的逗号，并且代码应放在“}]”之前&lt;/span&gt;），修改后保存文件，打开Mathematica后，任意时间按下“Ctrl+Shift+4”即可打开特殊字符面板了：&lt;/li&gt;&lt;/ol&gt;

&lt;pre data-pbcklang=&quot;prettyprint lang-mma&quot; data-pbcktabsize=&quot;4&quot; class=&quot;prettyprint linenums lang-prettyprint lang-mma&quot;&gt;,
(* myself shortcut keys *)	
	Item[KeyEvent[&quot;4&quot;, Modifiers -&amp;gt; {Control, Shift}], KernelExecute[SystemOpen[FileNameJoin[{$InstallationDirectory,&quot;/SystemFiles/FrontEnd/Palettes/SpecialCharacters.nb&quot;}]]], MenuEvaluator -&amp;gt; Automatic, Method -&amp;gt; &quot;Queued&quot;]&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;</description>
<category>动态交互</category>
<guid isPermaLink="true">https://mmaqa.com/qa/2656/?show=2657#a2657</guid>
<pubDate>Thu, 07 Nov 2019 02:19:35 +0000</pubDate>
</item>
<item>
<title>我要实现Netlogo的MMA类似物为何不行？还请高手帮忙指点。</title>
<link>https://mmaqa.com/qa/1642/netlogomma</link>
<description>

&lt;p&gt;代码是海龟吃草，草也自己以3%的比率长。不用go[]就正常，一用go[]草就不更新了。咋办？
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;prettyprint lang-mma&quot;&gt;
Manipulate[If[going,(*go[*)turtles = moveTurtles[]; eatGrass[];
  patches = regrowGrass[](*]*)]; 
 visualize[], {{maxPxcor, 20}, 1, 21(*51*), 1, ImageSize -&amp;gt; Tiny, 
  Appearance -&amp;gt; &amp;quot;Labeled&amp;quot;}, {{maxPycor, 20}, 1, 21(*51*), 1, ImageSize -&amp;gt; Tiny, 
  Appearance -&amp;gt; &amp;quot;Labeled&amp;quot;}, {{n, 3, &amp;quot;number of agents&amp;quot;}, 1, 100, 1, ImageSize -&amp;gt; Tiny, 
  Appearance -&amp;gt; &amp;quot;Labeled&amp;quot;}, Delimiter, 
 Row[{Control[{{going, False, &amp;quot;Going&amp;quot;}, {False, True}}], 
   Button[&amp;quot;GoNext&amp;quot;, going = False;(*go[*)turtles = moveTurtles[];
    eatGrass[]; patches = regrowGrass[](*]*)]}, Spacer[10]], SynchronousUpdating -&amp;gt; True,
  TrackedSymbols :&amp;gt; {going, patches, turtles}, ControlPlacement -&amp;gt; Left, 
 Initialization :&amp;gt; {minPxcor = minPycor = 1, 
   worldWidth = {minPxcor, maxPxcor} = worldHeight = {minPycor, maxPycor}, 
   setupPatches[] := patches = Table[Green, {maxPxcor}, {maxPycor}], 
   setupTurtles[n_] := 
    turtles = Table[{Hue[RandomReal[]], {RandomReal[worldWidth], 
        RandomReal[worldHeight]}}, {n}], setup[] := setupPatches[]; setupTurtles[n], 
   go[] := turtles = moveTurtles[]; eatGrass[];
   patches = regrowGrass[], 
   moveTurtles[] := 
    Module[{angle}, 
     Map[{#[[1]], 
        Clip[#[[2]] +(*noise*)1 {angle = RandomReal[2 Pi]; Cos[angle], Sin[angle]}, 
         worldWidth]} &amp;amp;, turtles]], 
   eatGrass[] := 
    Module[{x, y}, 
     Scan[If[patches[[{x, y} = Floor /@ #[[2]]; x, y]] == Green, patches[[x, y]] = Black,
         Null] &amp;amp;, turtles]], 
   visualize[] := 
    Graphics[Table[{patches[[x, y]], Rectangle[{x, y}]}, {x, maxPxcor}, {y, maxPycor}]~
      Join~{Arrowheads[.1], 
       Map[{#[[1]], Arrow[{#[[2]], #[[2]] + RandomReal[{.01, .01}, 2]}]} &amp;amp;, turtles]}, 
     ImageSize -&amp;gt; {350, 350}, AspectRatio -&amp;gt; Automatic, Axes -&amp;gt; False, 
     PlotRange -&amp;gt; {worldWidth, worldHeight}], 
   regrowGrass[] := 
    MapIndexed[If[RandomInteger[{1, 100}] &amp;lt; 3, Green, patches[[Sequence @@ #2]]] &amp;amp;, 
     patches, {2}], setup[]}]&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>动态交互</category>
<guid isPermaLink="true">https://mmaqa.com/qa/1642/netlogomma</guid>
<pubDate>Fri, 13 Jan 2017 01:55:48 +0000</pubDate>
</item>
<item>
<title>如何实现规则多次应用？</title>
<link>https://mmaqa.com/qa/1607/</link>
<description>&amp;lt;!--StartFragment --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
如何实现规则多次应用？&lt;br /&gt;
/。表示应用了一个规则；如果规则多次应用如何实现？&lt;br /&gt;
举例：&lt;br /&gt;
{x,y} /. x-&amp;gt;2 表示给x赋值为2.如果希望赋值为2后再赋值为3，如何实现？&lt;br /&gt;
各位，那位知晓如何编程呀？</description>
<category>动态交互</category>
<guid isPermaLink="true">https://mmaqa.com/qa/1607/</guid>
<pubDate>Wed, 04 Jan 2017 05:19:07 +0000</pubDate>
</item>
<item>
<title>已回答：MMA10.3 做随机模拟，一输入数值计算N[...]程序就崩溃</title>
<link>https://mmaqa.com/qa/1038/mma10-3-n?show=1049#a1049</link>
<description>在Mac系统碰到过和你相似的问题，最终是重装了系统才解决的（重装mma未能解决），Win下你试试重新安装mma，并清理看看能否解决吧。</description>
<category>动态交互</category>
<guid isPermaLink="true">https://mmaqa.com/qa/1038/mma10-3-n?show=1049#a1049</guid>
<pubDate>Fri, 05 Aug 2016 11:36:22 +0000</pubDate>
</item>
<item>
<title>求帮助~从串口读取陀螺仪信息并画图时IF语句随缘不灵</title>
<link>https://mmaqa.com/qa/930/if</link>
<description>

&lt;pre class=&quot;prettyprint lang-mma&quot;&gt;
代码是这个样子的
obj1 = DeviceOpen[&amp;quot;Serial&amp;quot;, &amp;quot;COM4&amp;quot;];
data1 = {};
Dynamic[If[ToExpression[DeviceRead[obj1]] != 10, 
  AppendTo[data1, FromCharacterCode@ToExpression@DeviceRead[obj1]], 
  data2 = ToExpression@
    StringSplit[StringJoin[DeleteCases[data1, FromCharacterCode[13]]],
      &amp;quot;,&amp;quot;]; list1 = data1; data1 = {}]]  (*这个分割感谢苹果大大*)
Dynamic[Graphics3D[
  GeometricTransformation[Cuboid[{0, 0, 0}, {3, 6, 1}], 
   RollPitchYawMatrix[list1]]]]
&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;这一块儿代码是从串口读取链接在Arduino uno上的陀螺仪信息并画图,陀螺仪输出的信息是&amp;quot;滚动角,俯仰角,水平角,回车换行&amp;quot;,所有语句自己编数据测试都正常,但是放到Dynamic中的IF里会有判断失误的情况出现:比如放在data1中的数据应该是没有换行符(ToExpression[DeviceRead[obj1]] != 10),但是换行符有时候却会出现在data1中....&lt;/p&gt;



&lt;p&gt;请问这大概是哪儿出了问题&lt;/p&gt;



&lt;p&gt;
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;</description>
<category>动态交互</category>
<guid isPermaLink="true">https://mmaqa.com/qa/930/if</guid>
<pubDate>Fri, 08 Jul 2016 01:45:51 +0000</pubDate>
</item>
<item>
<title>已回答：并行计算的计算监控问题</title>
<link>https://mmaqa.com/qa/638/?show=673#a673</link>
<description>

&lt;pre class=&quot;prettyprint lang-mma&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;background-color:#FF0000&quot;&gt;(*不建议核函数计算较快(&amp;lt;0.1s)的使用本程序。感谢@苹果*)&lt;/span&gt;&lt;/strong&gt;



RebootLaunchKernels[n___] := (
   CloseKernels[];
   LaunchKernels[n];);
bootParallelMonitor[n___] := (
   (*清除旧定义*)
   UnsetShared[$Proc];
   Clear[$Proc];
   (*判定是否需要重启内核*)
   If[$KernelCount &amp;lt; 2,
    RebootLaunchKernels[n],
    If[IntegerQ[n] \[And] (n =!= $KernelCount), 
     RebootLaunchKernels[n], Null],
    RebootLaunchKernels[n]];
   (*建立并行计算监视器*)
   $Proc = ConstantArray[0., $KernelCount + 1];
   SetSharedVariable[$Proc];
   Column@
    Table[With[{m = m}, Dynamic[$Proc[[m]]]], {m, 
      1, $KernelCount + 1}]);
$KernelMonitor[id_] := Module[{},(*分类累加器*)If[IntegerQ[id] \[And] (id &amp;gt; 1),
    $Proc[[Mod[id, $KernelCount] + 1]] += 1, Null];
   (*主累加器*)
   $Proc[[$KernelCount + 1 + 0*id]] += 1;
   (*被并行执行的核函数*)
   $Parallelfn];&lt;/pre&gt;



&lt;p&gt;运行示例：&lt;/p&gt;



&lt;pre class=&quot;prettyprint lang-mma&quot;&gt;
bootParallelMonitor[]
fn := Cos[i];
$Parallelfn =
  Hue[(Arg[fn] + \[Pi])/(2 \[Pi]), 1/(1 + 0.3 Log[Abs[fn] + 1]), 
   1 - 1/(1.1 + 5 Log[Abs[fn] + 1]), 1];
ParallelTable[$KernelMonitor[i], {i, -20, 20 ,0.1}, Method -&amp;gt; &amp;quot;CoarsestGrained&amp;quot;]&lt;/pre&gt;



&lt;p&gt;测速：&lt;/p&gt;



&lt;pre class=&quot;prettyprint lang-mma&quot;&gt;
$Parallelfn = Sum[i, {i, 1000000}];
getData[n_] := 
  AbsoluteTiming[
      Short[ParallelTable[#[i], {i, n}]]] &amp;amp; /@ {$KernelMonitor} // 
   Flatten;
getData1[n_] := 
  AbsoluteTiming[
      Short[ParallelTable[#[i], {i, n}]]] &amp;amp; /@ {$Parallelfn} // 
   Flatten;

TableForm[getData1 /@ {30, 50, 130, 200, 2000, 10000}, 
 TableHeadings -&amp;gt; {{&amp;quot;n=30&amp;quot;, &amp;quot;n=50&amp;quot;, &amp;quot;n=130&amp;quot;, &amp;quot;n=200&amp;quot;, &amp;quot;n=2000&amp;quot;, 
    &amp;quot;n=10000&amp;quot;}, {&amp;quot;t2&amp;quot;, &amp;quot;Parallel&amp;quot;}}]
TableForm[getData /@ {30, 50, 130, 200, 2000, 10000}, 
 TableHeadings -&amp;gt; {{&amp;quot;n=30&amp;quot;, &amp;quot;n=50&amp;quot;, &amp;quot;n=130&amp;quot;, &amp;quot;n=200&amp;quot;, &amp;quot;n=2000&amp;quot;, 
    &amp;quot;n=10000&amp;quot;}, {&amp;quot;t1&amp;quot;, &amp;quot;ParallelMonitor&amp;quot;}}]&lt;/pre&gt;



&lt;p&gt;结果是挺令人懵逼的。我正在考虑找另外的途径来实现这个目的，而不是用动态更新。。&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://mmaqa.com/qa/?qa=blob&amp;amp;qa_blobid=15018016518318793499&quot; style=&quot;height:262px; width:367px&quot;&gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>动态交互</category>
<guid isPermaLink="true">https://mmaqa.com/qa/638/?show=673#a673</guid>
<pubDate>Fri, 27 May 2016 10:06:25 +0000</pubDate>
</item>
<item>
<title>已回答：鼠标松开后计时一段时间，在此时间内连续画图，然后再次松开，又画另外一个图</title>
<link>https://mmaqa.com/qa/450/?show=473#a473</link>
<description>

&lt;pre class=&quot;prettyprint lang-mma&quot;&gt;
Clear[&amp;quot;Global`*&amp;quot;];
i = 0; j = 0;
signal = False;
count = 0;
f[x_] := Graphics[{Circle[{0, 0}, 2], Circle[{x, 0}, 1]}];
nb = CreateDialog[DynamicModule[{}, Dynamic[count = Clock[{0, 5}];
    If[signal, {If[count &amp;lt; 3, f[j = j + 0.01], signal = False; f[j]], 
      signal, count, j}, j = j; {f[j], signal, count, j}]]], 
  WindowSize -&amp;gt; Medium]
SetOptions[nb, 
 NotebookEventActions -&amp;gt; {&amp;quot;MouseUp&amp;quot; :&amp;gt; (signal = True; count = 0), 
   &amp;quot;MouseDown&amp;quot; :&amp;gt; (signal = False; count = 0)}]
   (*我用上面那位朋友的改了下，似乎出来了，但感觉有时候还不太灵敏，有时候再按鼠标不起作用*)&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>动态交互</category>
<guid isPermaLink="true">https://mmaqa.com/qa/450/?show=473#a473</guid>
<pubDate>Tue, 10 May 2016 09:57:36 +0000</pubDate>
</item>
<item>
<title>已回答：能不能设计这样的程序，可以显示调用自己的函数的函数名？</title>
<link>https://mmaqa.com/qa/183/?show=184#a184</link>
<description>

&lt;pre class=&quot;prettyprint lang-mma&quot;&gt;
getHead[expr_] := 
  Head/@Select[Level[expr,{0,Infinity}],MemberQ[#,showCall,Infinity]&amp;amp;];
getHead[f[g[h[showCall], i[x]]]]
getHead[showCall]
getHead[F[showCall]]&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>动态交互</category>
<guid isPermaLink="true">https://mmaqa.com/qa/183/?show=184#a184</guid>
<pubDate>Tue, 19 Apr 2016 12:05:46 +0000</pubDate>
</item>
<item>
<title>已回答：苹果老师关于双摆的动画代码有个小瑕疵，就是在t=0时两根杆子没有与地面平行</title>
<link>https://mmaqa.com/qa/14/t-0?show=24#a24</link>
<description>这本来是个很简单的问题.&lt;br /&gt;
&lt;br /&gt;
1.Animate是一系列图依次播放，上述代码中，播放的是data图片集，现在已知第一幅图不对，第一幅图是data[[1]].&lt;br /&gt;
&lt;br /&gt;
2.那么产生data[[1]]的代码是什么？是Table[expr,{t,tmax/num,tmax,tmax/num}].&lt;br /&gt;
&lt;br /&gt;
3.从上面Table里面就能看出来，压根就没从t=0开始画，是从t=tmax/num开始画的.&lt;br /&gt;
&lt;br /&gt;
4.所以解决问题的直观想法是: 改成t=0开始画呗，也就是Table[expr,{t,0,tmax,tmax/num}].&lt;br /&gt;
&lt;br /&gt;
5.然而改完运行发现报错了，所以机智而懒惰的我，并不想去寻找为啥从0开始画有问题，就直接把0改成$MinMachineNumber了，然后就问题解决了.&lt;br /&gt;
&lt;br /&gt;
6.为啥不能从0开始画呢，有想法但是懒得去想，所以就没有然后了。&lt;br /&gt;
&lt;br /&gt;
7.好吧，我又去扫了一眼报错，原来是ParametricPlot[expr,{x,0,0}]是不允许的，所以现在为啥不能从0开始画，而是从$MinMachineNumber开始画就没问题的原因也找到了。</description>
<category>动态交互</category>
<guid isPermaLink="true">https://mmaqa.com/qa/14/t-0?show=24#a24</guid>
<pubDate>Mon, 04 Apr 2016 14:30:16 +0000</pubDate>
</item>
</channel>
</rss>