Manipulate

Manipulate[expr, {u, umin, umax}]
产生一个带有控件的 expr 的版本,该控件允许 u 值交互式操作.

Manipulate[expr, {u, umin, umax, du}]
允许 u 值在 之间以步长 du 变化.

Manipulate[expr, {{u, uinit}, umin, umax, ...}]
u 的初始值设置为 .

Manipulate[expr, {{u, uinit, ulbl}, ...}]
作为 u 的控件标签.

Manipulate[expr, {u, {u1, u2, ...}}]
允许 u 取离散值 .

Manipulate[expr, {u, ...}, {v, ...}, ...]
使控件可以操纵每个 .

Manipulate[expr, "cu"->{u, ...}, "cv"->{v, ...}, ...]
把控件与外部设备上的一个指定的控制器相链接.

更多信息更多信息

  • 表达式 expr 可以是任何的图形或其它的表达式. 如果设置为 None,仅显示控件.
  • 默认情况下,以下形式可以生成特定格式的控件:
  • {u,umin,umax}操控器(滑尺、动画等等)
    {u,umin,umax,du}步长为 du 的离散操控器
    {u,{xmin,ymin},{xmax,ymax}}二维滑尺
    {u,Locator}图形中的定位器
    {u,{u1,u2,...}}一些元素的设置用工具条;更多的元素设置使用弹出菜单
    {u,{u1->lbl1,u2->lbl2,...}}带有元素标签的设置用工具条或弹出菜单
    {u,{True, False}}选择框
    {u,color}颜色滑尺
    {u}空白输入栏
    {u,func}从一个函数中创建一个任意控件
    {{u,uinit},...}初始值为 的控件
    {{u,uinit,ulbl},...}标签为 的控件
    {{u,...},...,opts}带特殊选项的控件
    Control[...]一般控件对象
    Delimiter水平定界符
    字符串、视窗、单元表达式等等显式的文本、视窗、单元等注释符号
  • 取代控件的可能注释包括带有头部 StringStyleRowItemTextExpressionCellTextCell 的表达式以及如 TabViewGrid 那样的视窗和布局结构.
  • 在注释中,控件可用 Control 具体指定.
  • 一个控件的标签 可以是任意表达式.
  • 选项设置 ControlType->type 尽可能使用指定类型的控件.
  • 可能的控件类型包括: AnimatorCheckboxCheckboxBarColorSetterColorSliderInputFieldManipulatorPopupMenuRadioButtonRadioButtonBarSetterSetterBarSliderSlider2DTogglerBarTriggerVerticalSlider. None 也可以使用.
  • 可以为每个变量分别设置 ControlType 选项. 在变量的规范内也可以给出控件选项.
  • ControlType->Trigger 指定一个特定的变量,它应该由触发器控制.
  • 控件指定 {u, umin, umax, ..., Appearance->"Labeled"} 产生值显示为标签的滑尺.
  • 格式中,Dynamic[u] 作为 func 的第一个参数给出.
  • 也可以使用格式 ;它是按照 func[Dynamic[u], {umin, umax}] 执行计算的.
  • 格式 {u} 等价于 {u, InputField}{u, ColorSlider} 将一个默认颜色的滑尺作为控件给出.
  • {u, Locator} 格式中,u 的值是 xy 坐标组成的列表. 该坐标表示 expr 中的第一个图形,或者通过 expr 的每一个方向上的从 0 到 1 的范围.
  • 格式 {{u, {{x1, y1}, {x2, y2}, ...}}, Locator} 为每一个 建立一个定位器,并且使 u 的值为所有 组成的列表.
  • 格式 {{u, uinit}, {xmin, ymin}, {xmax, ymax}, Locator} 指定定位器的范围.
  • 选项设置 LocatorAutoCreate->All 指定新的定位器应该对没有碰到现有定位器的点击添加. Alt+Click 删除定位器.
  • {{u, {}}, Locator, LocatorAutoCreate->All} 启动时没有定位器,但允许创建定位器.
  • 如果变量 u 的使用次数大于 1,给出它的链接控件.
  • 选项设置 ControlPlacement->pos 指定控件应该放在与 expr 相关的 pos 坐标处. pos 可能的设置有 BottomLeftRightTop.
  • 注释的位置可通过将其封装在一个带有 ControlPlacement 选项的 Item 中指定.
  • 可以给出下列的全部选项:
  • AlignmentAutomatic如何在显示区域中对齐输出
    AppearanceElementsAutomatic所有的控件元素包含在显示输出中
    AutoActionFalse当鼠标指向时是否自动改变控件
    AutorunSequencingAutomatic如何自动运行控件
    BaselinePositionAutomatic与周围的文本的对齐
    BaseStyle{}Manipulate 的基本样式规范
    Bookmarks{}书签的设置
    ContentSizeAutomatic内容区域的绝对尺寸
    ContinuousActionAutomatic控件改变时是否连续更新
    ControllerLinkingAutomatic何时激活与外部控件的连接
    ControllerMethodAutomatic如何操作外部控件
    ControllerPathAutomatic需要使用哪个外部控件
    ControlPlacementAutomatic控件的位置
    ControlTypeAutomatic所使用的控件的类型
    DeinitializationNone如果删除 Manipulate 的输出,需要计算的表达式
    DeployedFalse是否部署显示的输出
    EvaluatorAutomatic计算所使用的内核
    FrameLabelNone外部框架的标签
    FrameMarginsAutomatic整体框架内的边幅
    ImageMargins0整体 Manipulate 周围的边幅
    InitializationNone当输出第一次显示时要计算的表达式
    InterpolationOrderAutomatic书签之间动画转换的插入顺序
    LabelStyle{}控件区域的样式规范
    LocalizeVariablesTrue是否将变量设置为局部变量
    PaneledTrue是否把显示的输出放入面板中
    PreserveImageOptionsTrue当重新生成图形时,是否保留图像大小和其它选项
    UnsavedVariablesNone不应该保存值的变量
    RotateLabelFalse在框架中是否旋转 y 标签
    SaveDefinitionsFalse是否保存与 expr 关联的所有定义
    ShrinkingDelay0在显示对象变小前,缩小区域需要延迟的时间
    SynchronousInitializationTrue是否同步执行初始化
    SynchronousUpdatingAutomatic是否同步更新
    TouchscreenAutoZoomFalse当在触摸屏上激活时,是否放大到全屏
    TouchscreenControlPlacementAutomatic触摸屏上的控件的位置
    TrackedSymbolsFull发生改变时触发输出更新的符号
  • 选项 ControlPlacementControlType 可以以 的形式分别提供给每个变量.
  • Manipulate 是一个作用域结构,实现词典式作用域.
  • Manipulate 产生一个 DynamicModule 对象,并且 uv 等变量被指定为局部变量.
  • 默认设置 UnsavedVariables->{},变量 uv 等值会自动保存在记事本中,当记事本重新打开时它重新存储.
  • 设置 Initialization:>expr,当 Manipulate 执行或结果第一次显示在一个特定会话中时,计算 expr 表达式.
  • AppearanceElements 的设置可以是以下任何次序的列表: . 默认情况下,只包含 .
  • 按下快照按钮,直接在 Manipulate 的输出下产生一个单元,包含格式 With[{u=uval, ...}, expr] 的输入, 指明所有变量的当前值.
  • 设置 ContinuousAction->None,显示一个明确的 更新 按钮,expr 是不会重新计算的,直到按下该按钮.
  • 默认设置 TrackedSymbols->Automatic,只有在 expr 中明确显示的符号才会被跟踪.
  • TrackedSymbols->True 记录在 Manipulate 控件中出现的符号.
  • 设置 TrackedSymbols->All,当任何符号在计算时发生改变的时候,才更新输出.
  • 默认设置 ControllerLinking->Automatic,当 Manipulate 是当前选择的一部分时,Manipulate 中的控件响应外部设备中的指定控件.
  • 外部设备的控件(例如游戏面板)可以包括游戏操纵杆、按钮等等.
  • 典型的外部控件说明包括:
  • x主要 x
    y主要 y
    z主要 z
    {x,y}主要 2 轴控件值
    {x,y,z}主要 3 轴控件值
    等.xy二级控件的值
    等.x循环值
    等.x绝对控件位置的值
    等.切换按钮状态
    等.瞬时按钮状态
  • 在一个 Mathematica 特定进程中活跃的设备的外部控件的规格名称,通常可以用 ControllerInformation 来获取.
  • 默认设置 ControllerMethod->Automatic,一个控件规范(如 )的意思是:一个控件的位移,例如游戏操纵杆默认是由相应的变量 x 的变化率决定的. 如果选中了一个不同的状态,例如通过松开游戏操纵杆,控件的绝对位置直接决定 x 的值.
  • 在诸如 的控件规范下,一个控件的绝对位置例如一个游戏操纵杆决定了相应的变量 x 的值.
  • 在诸如 的控件规范下,当控件到达范围的最后,相应的变量 x 的值通常从头开始循环.
  • 诸如 的控件规范可能与外部设备上的很多控件相关联,例如单个控件上的两个截然不同的游戏操纵杆上的轴.
  • 在有两个操纵杆的游戏面板或其它设备上, 通常是指左边的操纵杆, 通常是指右边的操纵杆. 如果游戏面板上有一个"帽子"控制,通常指的是 .
  • 按钮控件规范,例如 ,每当对应的按钮被压下时,它就在 TrueFalse 之间切换.
  • 绝对规范,例如 ,当按下按钮时为 True 否则为 False.
  • BaseStyleLabelStyle 的设置可以作为当前样式表中 提供的默认样式的补充.
版本 6 的新功能 | 版本 9 修改功能
New to Mathematica? Find your learning path »
Have a question? Ask support »