Javascript must be enabled in your browser to use this page.
Please enable Javascript under your Tools menu in your browser.
Once javascript is enabled Click here to go back to �нтеллектуальная Кобринщина

Make Dynamic Graphics - Wolfram Mathematica

Делаем графику интерактивной

Язык, используемый Mathematica для создания графики, полностью интегрирован с динамической интерактивностью. Это позволяет Вам создавать графику, которая может реагировать разнообразными способами на устройства ввода данных.

Начнем с создания диска (Disk) при помощи функции Graphics:

In[6]:=

MakeDynamicGraphicsRU_2.gif

Out[6]=

MakeDynamicGraphicsRU_3.gif

Mathematica позволяет Вам встраивать всплывающие подсказки в графические объекты. Всплывающие подсказки - прекрасный способ добавления аннотаций в графику.

Применим функцию Tooltip внутри Graphics для встраивания всплывающей подсказки в изображение диска. Наведите курсор на диск для появления всплывающей подсказки:

In[1]:=

MakeDynamicGraphicsRU_4.gif

Out[1]=

MakeDynamicGraphicsRU_5.gif

Изменение поведения объектов Mathematica при  наведении на них указателя мыши, реализуемое функцией Mouseover, обладает расширенными возможностями, которые могут быть добавлены в графику.

Например, используем функцию Mouseover, чтобы заставить диск изменить цвет на красный при наведении на него указателя мыши:

In[8]:=

MakeDynamicGraphicsRU_6.gif

Out[8]=

MakeDynamicGraphicsRU_7.gif

Вы также можете задать отклик при щелчке мышкой внутри графики, применив функцию Button (Кнопка) для всей поверхности диска. В этом примере, щелчок мышью на диске вызывает звуковой сигнал:

In[9]:=

MakeDynamicGraphicsRU_8.gif

Out[9]=

MakeDynamicGraphicsRU_9.gif

Mathematica позволяет Вам превратить графический объект в гиперссылку. Щелчок мышью на размещенном ниже диске направит Вас на домашнюю страницу Wolfram Research:

In[10]:=

MakeDynamicGraphicsRU_10.gif

Out[10]=

MakeDynamicGraphicsRU_11.gif

Разместив функцию Dynamic в соответствующем месте внутри выражения для функции Graphics, Вы можете создать графический объект, к&# 1086;торый изменяет свое поведение при движении указателя мыши внутри этого объекта.

К примеру, наведите указатель мыши внутрь рамки, внутри которой находится диск. Диск динамически переместиться, располагая свой центр в точке, куда Вы поставите указатели. В этом примере функция MousePosition используется внутри функции Dynamic для определения позиции мыши при каждом ее движении:

In[11]:=

MakeDynamicGraphicsRU_12.gif

Out[11]=

MakeDynamicGraphicsRU_13.gif

Этот графический объект будет изменять свое поведение при наведении указателя мыши на любой графический объект. Если Вы наведете указатель мыши на диск из предыдущего примера с гиперссылкой, Вы увидите, что заключенный в рамку диск движется внутри рамки, отслеживая перемещение указателя мыши.

Если такое поведения графики нежелательно, ограничьте функцию MousePosition условием, обеспечивающим ее срабатывание только если указатель мыши находится в пределах именно этого графического объекта. Это достигается синтаксисом MousePosition[{"Graphics",Graphics} в примере ниже.

В данном примере, движение указателя мыши над графическим объектом приводит в движение диски в обоих рамках. Но не наоборот. Как Вы можете заметить, движение указателем мы ши на графических объектах вверху не меняет позицию диска графического объекта приведенного ниже:

In[4]:=

MakeDynamicGraphicsRU_14.gif

Out[4]=

MakeDynamicGraphicsRU_15.gif