Wolfram mathematica 操纵表达式的触发和更新问题

Wolfram mathematica 操纵表达式的触发和更新问题,wolfram-mathematica,Wolfram Mathematica,专家们 我不明白为什么每次单击“StepRightButton”(触发器控件的一部分)时,操纵表达式会被计算2次 当我单击“+”按钮时,我看到计数器按预期上升一次,但是表达式被计算了两次,而不是预期的一次。这里有一个小例子 Manipulate[ Show[ Graphics@Text@Row[{currentTime," ",Date[]}], Plot[Sin[x],{x,-Pi,Pi}] ], Control[{{currentTime,0,Style["run",10]},0,1

专家们

我不明白为什么每次单击“StepRightButton”(触发器控件的一部分)时,操纵表达式会被计算2次

当我单击“+”按钮时,我看到计数器按预期上升一次,但是表达式被计算了两次,而不是预期的一次。这里有一个小例子

Manipulate[

Show[
Graphics@Text@Row[{currentTime,"   ",Date[]}],
Plot[Sin[x],{x,-Pi,Pi}]
],

Control[{{currentTime,0,Style["run",10]},0,100,0.1,
      ControlType->Trigger,DisplayAllSteps->True,ImageSize->Tiny,
      AnimationRate->Automatic,AnimationRepetitions->0,
      AppearanceElements->{"PlayButton","PauseButton","StepRightButton","ResetButton"}}
],

ContinuousAction->False,
SynchronousUpdating->False

]
再次单击“+”显示“currentTime”变量增加了正确的数量(本例中为0.1)。但我的问题是,为什么表达式会被计算两次,因为每次点击“+”按钮都可以看到打印的日期[]增加2次

这导致了我的问题,因为我假设表达式将每“滴答”计算一次

这是一种确保每次单击“+”时对表达式求值一次的方法吗


谢谢,

这可以通过在
绘图
功能中添加选项
性能自我->“质量”
来解决


在显示操纵项目期间,根据
PerformanceGoal
设置,可以显示保真度较低的对象样本。如有必要,在操纵结束时绘制高保真度版本。这是后来的重画,这似乎是造成问题的原因。

非常好!我不知道有一种东西叫做“如果必要的话,操纵结束时会画出更高的保真度”。我从没听说过这样的事。我以为有一些动态或时间问题,但我看不出来。这些东西有没有记录在案?这是否仅适用于打印?谢谢教程/AdvancedDynamicFunctionality中有一些关于这方面的内容。请参阅
ControlActive
@Nasser…,不要忘记
PerformanceGoal
$PerformanceGoal
的文档页面。在后者中,您会发现:$PerformanceGoal的典型默认值是ControlActive[“速度”、“质量”]。