Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica > 动态交互 > 动态交互式语言 > Dynamic >

Dynamic

Dynamic[expr]
表示一个显示 expr 动态更新值的对象.如果用交互方式改变或编辑 Dynamic[expr],则赋值 ,给出 expr 新值 val,且该值与显示形式一致.
Dynamic[expr, None]
不允许交互方式改变或编辑.
Dynamic
val 进行交互式改变或编辑时继续计算 .
Dynamic
在交互式改变或编辑完成时计算 .
Dynamic
在交互式改变或者编辑开始时计算 .
  • Dynamic[expr] 不仅可以直接显示为表达式,也可以显示为基本图形的坐标或者滑尺之类的对象,或作为选项的设置.
  • 当用于通过交互运算为 expr 赋值时, Dynamic[expr] 中的表达式通常是一个符号 x、一个对象 、一个部分 或者一个列表 .
  • 例如在图形中,Point 表示一个点,其坐标根据 xy 的当前值动态更新.当该点交互移动时,执行 形式的赋值. Point 可以交互移动; 而Dynamic[Point[{x, y}]] 不行.
  • Dynamic[expr] 需要 expr 值时便会对其进行计算,它确定其中任何变量值的类型,虽然有些可能已经被改变.
  • 如果 RefreshClock 对象出现在 Dynamic[expr] 的表达式计算中,则 expr 将通常需要重新计算.
  • Dynamic 具有属性 HoldFirst, 所以在需要显示 expr 值之前不对其进行计算.
  • Dynamic 使交互式运算不改变 expr,除了因为 计算.
  • Dynamic[expr, None] 表示对象不能交互式改变,但是如果 expr 的值由于其它原因改变时它也会改变.
  • Dynamic[expr, Temporary] 允许一个对象的显示形式在交互式运算过程中改变,但是只会在运算完成后对 expr 赋值更新.
  • 对交互式鼠标操作而言,Dynamic 通常在按下鼠标时计算 ,然后在鼠标移动时计算 ,然后在鼠标释放时计算 .
  • 如果鼠标未移动,则 f 分别只计算一次.
  • 每次在 计算后立即进行计算,最后计算完成时,val 的值总是与 中相同.
  • 可以影响 Dynamic 对象的交互式操作包括拖曳图形中的元素或者类似 Slider 对象中的元素,以及诸如 InputField 对象中的字段编辑.
  • 函数 f 可以如下:
Automatic利用 Set 赋值
None不执行动作
Temporary允许交互式操作以临时改变
func计算
  • Dynamic 可用于对 expr 的赋值进行约束.
  • expr 为类似 的表达式时,Dynamic 可用于为单独变量赋值.
  • 一个函数 如果要为 expr 赋值就应该具有属性 HoldRest.这可以利用 Function[{v, e}, body, HoldRest] 实现.
  • 可以给出以下可选项:
DeinitializationNoneDynamic 不能再显示时,计算的表达式
EvaluatorAutomatic用于计算的核
InitializationNoneDynamic 首次被显示时进行计算的表达式
ShrinkingDelay0.如果被显示对象缩小,在缩小前延迟多长时间
SynchronousUpdatingTrue是否对内容进行同步计算
TrackedSymbolsAll符号变化触发更新
UpdateIntervalInfinity进行更新的时间间隔
  • 出于显示的需要,Dynamic[expr] 在明确要求数值的地方提供一个模拟赋值的显示,而不是进行表达式计算.
Dynamic 仅返回其赋值的当前值:
赋一个值以更新以上输出:
把符号 结合到一个 Slider
Dynamic 仅返回其赋值的当前值:
In[1]:=
Click for copyable input
Out[1]=
赋一个值以更新以上输出:
In[2]:=
Click for copyable input
Out[2]=
把符号 结合到一个 Slider
In[3]:=
Click for copyable input
Out[3]=
Dynamic 内可以设置任意表达式:
Dynamic 不显示在 StandardForm 中,但仍然存在:
Dynamic 链接依据 的当前显示值:
在默认情况下,Dynamic 中的变量未设定为局部变量:
DynamicModule 设定局部化变量:
并且初始化变量:
Dynamic 表达式可以自触发:
Slider 共用:
诸如 RandomRealDateList 的表达式不会自动更新:
UpdateInterval 指定动态更新:
Plot 需要特定数值来生成输出:
不同的 Dynamic 表达式分别更新,这样可以提高效率:
Dynamic 置于图形坐标周围,用图形作为控件输入:
用图形坐标作为控件输入并且观察滑尺效果:
Dynamic 连接有交互式控制的变量(例如 Slider):
ColorSlider
Dynamic 控制观看元素,例如 TabView
在默认情况下,Dynamic 用在交互元素中时执行赋值运算:
用第二自变量指定一个交互过程中进行计算的函数:
提供一个在交互过程中和交互后进行计算的双函数列表:
提供一个在交互过程中和交互后进行计算的三函数列表:
Temporary 在交互作用结束时更新动态变量:
None 拒绝更新动态变量:
指定当输出不再被显示时进行计算的表达式:
在默认情况下,外部定义在核心进程之间丢失:
Initialization 计算在显示输出时需要的表达式:
赋一个数值或图形:
ShrinkingDelay 允许收缩输出尺寸前减少时间:
仅当 变化时更新
把一个点的坐标限制在一个圆内:
构造一个动态计算界面:
生成一个定时器跟踪间隔时间(分秒),用 Trigger 作为控件:
生成一个国家形状的简单界面:
构造自定义控件,例如一个范围为 (, ) 的箭头滑尺:
一个范围为 (, ) 的箭头滑尺:
以下范例不成立,因为赋值运算失败:
Dynamic 的第二自变量控制赋值运算:
自触发 Dynamic 可以很容易造成无限循环(删除该输出使之停止):
在默认情况下,观看元素在显示前生成完整内容:
ImageSize->Automatic 只在显示时生成内容:
成对的 Slider
成对的 Slider2D
一个"下垂"的 Slider
使一个圆盘在图形区域移动时在鼠标位置居中:
当鼠标离开图形区域时记住其最后位置:
在框架区内点击并观察弹球:
版本 6 的新功能
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team
格式:   HTML  |  CDF