суббота, 15 января 2011 г.

Справка по классам GraphingBoard и SimpleGraph

Класс flashandmath.as3.parsers.RangeObject

Описание

RangeObject – это вспомогательный по отношению к RangeParser класс. Объекты данного класса представляют собой особый тип данных, возвращаемый методами parseRangeTwo и parseRangeFour класса RangeParser. Этот тип данных представляет собой объект, содержащий три свойства, перечисленных ниже, и включает в себя результаты анализа введенных пользователем диапазонов изменения двух переменных (например, X и Y), или одной переменной (скажем, параметра t). В большинстве приложений могут присутствовать поля для ввода диапазонов значений переменных, возможности данного класса позволяют вводить в эти поля, как простые числа, так и алгебраические выражения, содержащие число пи (pi/4, 2*pi и т.д.). Эти данные пользовательского ввода должны быть проанализированы и проверены на валидность.

Конструктор

Конструктор вызывается с помощью ключевого слова new без аргументов:
new RangeObject();
Обычно Вам не придется сталкиваться с необходимостью использования конструктора напрямую, поскольку полезными для применения объектами RangeObject могут быть только возвращаемые методами parseRangeTwo или parseRangeFour класса RangeParser.


Общедоступных методов у этого класса нет

Общедоступные свойства

У объектов класса RangeObject есть три таких свойства.
instance.Values:Array
Когда экземпляр класса RangeObject возвращается одним из методов класса RangeParser, то данный массив содержит в себе четыре значения границ диапазонов изменения переменных (при анализе диапазонов значений для двух переменных) или два значения границ диапазона (при анализе диапазона значений одной переменной, т.е. для каждой переменной задается минимальное и максимальное значения, в пределах которых можно будет построить графики функций).

instance.errorStatus:Number
Данное свойство равно 1 при обнаружении ошибки и 0 – в противном случае (Опять же, значение этого свойства устанавливается методами класса RangeParser).

instance.errorMes:String
Данное свойство содержит описание ошибки, позволяющее найти ее в пользовательском вводе.

Класс flashandmath.as3.parsers.RangeParser

Описание

Данный класс выполняет функцию анализа пользовательского ввода для диапазонов изменения значений переменных.

Конструктор

Конструктор вызывается с помощью ключевого слова new и не требует аргументов:
new RangeParser();
Например: var procRange:RangeParser = new RangeParser();

Общедоступные методы

У объектов класса RangeParser есть два таких метода.

instance.parseRangeTwo(par1:String, par2:String):RangeObject
Данный метод принимает в качестве аргументов две строковых величины (обычно введенные пользователем границы диапазона значений какого-либо параметра, например t) и возвращает экземпляр класса RangeObject.
Если введенные пользователем значения действительно являются численными величинами (или выражениями) и численное значение первого параметра меньше второго, то свойства возвращаемого экземпляра класса RangeObject равны: Values содержит значения границ диапазона; errorStatus = 0; errorMes = "".
При обнаружении ошибки свойства возвращаемого экземпляра класса RangeObject равны: errorStatus = 1; Values = []; а errorMes – содержит сообщение, указывающее на место возникновения ошибки.

instance.parseRangeFour(par1:String, par2:String, par3:String, par4:String):RangeObject
Данный метод аналогичен предыдущему, но выполняет анализ уже для границ диапазонов двух переменных, при этом должны соблюдаться условия: численное значение первого параметра должно быть меньше второго, а численное значение третьего – меньше четвертого.


Общедоступных свойств у этого класса нет

Класс flashandmath.as3.boards.GraphingBoard

Описание

GraphingBoard – это основной визуальный класс для создания настраиваемых двумерных графиков: графиков функций одной переменной, графиков параметрических функций и т.д. Экземпляр класса GraphingBoard создает прямоугольную область для отрисовки графиков с координатными осями и графиками функций, параметрических кривых. Любой экземпляр класса GraphingBoard также содержит текстовые поля для отображения: ошибок; координат мыши на графике. Имеется возможность "рисования" мышью на графике.
Верстка, цвета, и размеры всех элементов экземпляра класса GraphingBoard легко настраиваются с помощью методов класса.
Экземпляр класса GraphingBoard устанавливает диапазоны значений координат X и Y (как правило, на основе введенных пользователем данных), и предоставляет методы для перевода пиксельных координат точки в его функциональные координаты и наоборот.

Класс GraphingBoard наследует от класса Sprite. Таким образом, он обладает теми же свойствами и методами, что и класс Sprite. В частности, вы можете контролировать положение своего объекта GraphingBoard следующим образом:
instance.x = 200;
instance.y = 100;

Конструктор

Конструктор вызывается с помощью ключевого слова new и принимает два численных параметра: ширину и высоту (в пикселях) области для вычерчивания графиков:
new GraphingBoard(w:Number, h:Number);
Все остальные атрибуты графика настраиваются с помощью методов класса.

Методы для управления внешним видом области отрисовки графиков

Цвет фона графической области задается методом:
instance.changeBackColor(col:Number):void
По умолчанию цвет фона – белый.

Цвет и толщина рамки вокруг области отрисовки графиков задаются методом:
instance.changeBorderColorAndThick(col:Number, t:Number):void
Здесь первый аргумент – цвет линий, второй – толщина.
Для вновь создаваемых объектов класса цвет рамки – черный

Цвет и толщина координатных осей можно установить методом:
instance.setAxesColorAndThick(col:Number, t:Number):void
Первый аргумент – цвет осей, второй – толщина. Устанавливая значение толщины равным 0, мы получим оси толщиной в 1 пиксель, не изменяющие ее при изменении масштаба.
Значения по умолчанию: черный, 0 пикс.

Метод changeBackAlpha позволяет создавать графики без фона, устанавливая значение "прозрачности фона" равной 0:
instance.changeBackAlpha(alpha:Number):void

Следующие методы задают параметры сетки, делений и обозначений:
instance.setGridColor(col:Number):void – цвет сетки
instance.setGrid(xsize:Number, ysize:Number):void – шаг сетки по осям X и Y
instance.drawGrid():void – отрисовка сетки
instance.setTicks(xsize:Number,ysize:Number,xheight:Number,ywidth:Number):void – задание цены делений (xsize и ysize) и высоты линий делений (xheight, ywidth)
instance.drawTicks():void – отрисовка делений
instance.setLabelFormat(f:String,n:Number,c:uint):void – задание стиля надписей (f – шрифт, n – размер, c – цвет)
instance.addLabels():void – отрисовка значений делений
instance.clearLabels():void – соответственно, убирает значения делений

Методы для рисования на области графиков с помощью мыши

instance.enableUserDraw(col:Number, t:Number):void – данный метод включает возможности рисования пользователем с помощью мыши. В качестве аргументов принимает значения цвета и толщины линий пользовательской графики.
Значения по умолчанию: данная возможность включена, цвет линий – красный, толщина – 0.

Если же Вы хотите отключить такую возможность, то воспользуйтесь методом:
instance.disableUserDraw():void

Методы для управления отображением ошибок

Как упоминалось ранее, у экземпляров класса GraphingBoard есть специальное текстовое поле для отображения сообщений об ошибках. Для управления внешним видом и положением этого поля используйте следующие методы.

instance.setErrorBoxSizeAndPos(w:Number,h:Number,xpos:Number,ypos:Number):void
Параметры данного метода задают ширину, высоту и положение текстового поля (положение задается относительно положения объекта GraphingBoard).
По-умолчанию данное текстовое поле расположено в верней части объекта GraphingBoard.

Внешний вид текста, отображаемого в этом поле можно настроить с помощью метода:
instance.setErrorBoxFormat(col1:Number, col2:Number, col3:Number,s:Number): void
где col1 – цвет фона текстового поля, col2 – цвет рамки вокруг поля, col3 – цвет текста, s – размер шрифта.
По-умолчанию у этого текстового поля белые фон и рамка, шрифт – черный, 12пт.
Примечание: текстовое поле для отображения сообщений об ошибках являет общедоступным (public) свойством объектов класса GraphingBoard:
instance.ErrorBox
Поэтому, управлять его свойствами возможно напрямую. Однако лучшей практикой является обращение к нему через методы класса GraphingBoard.
Текстовое поле ErrorBox сделано общедоступным в целях облегчения управления его видимостью и текстом, отображаемым в нем (это текстовое поле становится видимым, когда пользователь допускают какую-либо ошибку, а его текст определяется типом ошибки).
Заметьте, что в начальном состоянии данное текстовое поле невидимо.

Методы для отображения координат мыши на графике

Также у объектов класса GraphingBoard есть текстовое поле, показывающее координаты мыши на нем. С помощью следующих методов Вы можете контролировать его положение и внешний вид.
instance.setCoordsBoxSizeAndPos(w:Number,h:Number, xpos:Number,ypos:Number): void
параметры этого метода задают размеры и положение текстового поля относительно положения объекта GraphingBoard.
По-умолчанию текстовое поле расположено в нижнем левом углу объекта.

Цвет фона и рамки вокруг текстового поля, а также цвет и размер шрифта текста устанавливаются методом:
instance.setCoordsBoxFormat(colo1:Number,colo2:Number,colo3:Number,s:Number): void
Параметры этого метода полностью аналогичны параметрам метода setErrorBoxFormat (см. выше). По-умолчанию стиль данного текстового поля такой же, как и у поля ErrorBox.

Отображение координат мыши на графике также можно включать и выключать:
disableCoordsDisp():void
enableCoordsDisp(h:String,v:String):void, где h и v – "имена" осей, отображаемые в текстовом поле.
По-умолчанию координаты мыши показываются.

Методы для трассировки точек

Класс GraphingBoard предоставляет несколько полезных методов для отслеживания положения точек. Класс предоставляет два стиля для отображения курсора: cross (крест) и arrow (стрелка). Стиль устанавливается методом:
instance.setTraceStyle(s:String):void
где параметр s должен принимать одно из двух значений cross или arrow.
Стиль по умолчанию: cross.
Для каждого из стилей есть возможности управления размером и цветом курсора. Далее описаны соответствующие методы.

Размеры и толщина линий курсора типа cross задаются методом:
instance.setCrossSizeAndThick(s:Number,t:Number):void
По-умолчанию размеры перекрестья – 6 пикс, толщина линий – 1 пикс.

Цвет перекрестья задается с помощью метода (по умолчанию черный):
instance.setCrossColor(col:Number):void

Управление положением курсора осуществляется методом
instance.setCrossPos(xpos:Number, ypos:Number):void
Положение задается в пикселях относительно левого верхнего края объекта GraphingBoard. По-умолчанию курсор находится в точке (0; 0).

Видимость перекрестья задается с помощью (по умолчанию невидимо):
instance.crossVisible(b:Boolean):void

Получение размеров перекрестья:
instance.getCrossSize():Number

Для курсора типа arrow (стрелка) имеются аналогичные методы.

Размеры стрелки:
instance.setArrowSize (s:Number):void

Цвет стрелки (по умолчанию черная):
instance.setArrowColor(col:Number):void

Положение (в пикселях относительно верхнего левого края объекта GraphingBoard) и поворот (отсчитываемый против хода часовой стрелки, в градусах) задаются методом:
instance.setArrowPos(xpos:Number, ypos:Number, rot:Number):void
По-умолчанию стрелка находится в верхнем левом углу и указывает вверх.

Видимость стрелки управляется методом (по умолчанию невидима):
instance.arrowVisible(b:Boolean):void

Чтобы узнать текущие размеры стрелки используйте:
instance.getArrowSize():Number


Методы для вычерчивания графиков

Для каждого экземпляра класса GraphingBoard количество одновременно отрисовываемых графиков задается методом (по умолчанию 3):
instance.setMaxNumGraphs(a:int):void

Перед тем, как Вы сможете приступить к отрисовке графиков, необходимо задать границы изменения координат x и y:
instance.setVarsRanges(xmin:Number, xmax:Number, ymin:Number, ymax:Number): void
Значения по умолчанию: отсутствуют.

Как только Вы задали диапазоны координат, можно нарисовать координатные оси:
instance.drawAxes(): void

Следующие методы позволяют рисовать точки, точки разрыва и вертикальные асимптоты. Заметьте, что цвет всех этих элементов задается первым методом:
instance.setCircleColor(col:Number): void
instance.addOpenPoint(p:Point):void – добавление точки разрыва ("пустой" точки)
instance.addClosedPoint(p:Point):void – добавление точки
instance.addVertAsymptote(nx:Number):void – добавление вертикальной ассимптоты
instance.drawPoints():void – отрисовка добавленных точек и ассимптот
instance.clearPoints():void – удаление добавленных точек как из графика, так и из памяти

Графики функций и кривые отрисовываются с помощью метода:
instance.drawGraph(num:int, thick:Number, aVals:Array, col:Number): Array
Первый параметр метода – номер отрисовываемого графика (не должен превышать максимального числа отрисовываемых графиков, заданного методом setMaxNumGraphs). Этот параметр также задает и "уровень" графика (график с большим значением "уровня" будет отображаться поверх графика с меньшим). Второй параметр задает толщину линий графика. Третий параметр должен быть массивом, состоящим из массивов пар значений координат точек. Координаты точек в этих массивах должны быть заданы в единицах измерения функций (графики которых строятся), объект GraphingBoard сам позаботится об их переводе в пиксели. Учтите, что данный метод просто берет координаты точек и последовательно соединяет их отрезками. Последний параметр задает цвет линии графика.
Метод drawGraph возвращает массив, содержащий значения координат точек на графике, но уже в пикселях.

Методы для очистки области отрисовки графиков

Для удаления графиков используйте метод:
instance.cleanBoard():void
Этот метод стирает все графики и оси, сбрасывает значения диапазонов изменения координат (после этой операции их снова надо будет задавать методом setVarsRanges). Однако данный метод не стирает графику нарисованную пользователем с помощью мыши, для этих целей есть метод:
instance.eraseUserDraw():void


Остальные методы класса GraphingBoard

Вот несколько дополнительных методов, которые могут оказаться полезными.

instance.getMaxNumGraphs():int – возвращает установленное значение максимального количества графиков

Для определения размеров графической области для вычерчивания графиков используйте методы:
instance.getBoardWidth():Number
instance.getBoardHeight():Number

Получить значения границ диапазонов координат x и y графика (если они были установлены ранее) позволяет метод:
instance.getVarsRanges(): Array

Для установки и получения значения количества точек, по которым строятся графики используйте методы:
instance.setNumPoints(np:Number):void
instance.getNumPoints():Number
Количество точек задает количество отрезков, из которых и получаются кривые.

Следующие четыре метода позволяют Вам преобразовывать координаты точек из единиц измерения, принятых в вычерчиваемых функциях, в пиксели и наоборот:
instance.xtoPix(a:Number): Number
instance.ytoPix(a:Number): Number
instance.xfromPix(a:Number): Number
instance.yfromPix(a:Number): Number

Вместо последних двух можно использовать следующие методы (эти методы остались для обратной совместимости, хотя их код полностью идентичен):
instance.xtoFun(a:Number): Number
instance.ytoFun(a:Number): Number

Заметим, что данные методы работают только при заданных значениях диапазонов изменения координат, в противном случае они возвращают NaN.

Парочка методов для проверки значений аргументов:

instance.function isLegal(a:*):Boolean – данный метод возвращает true, если аргумент является численным типом данных конечной величины, в противном случае возвращается false.
Метод instance.isDrawable(a:*):Boolean выполняет те же проверки, но добавляет условие того, что абсолютное значение аргумента не должно превышать "5000". Данное условие добавлено из-за возможности появления неожиданных результатов при попытке "нарисовать" что-либо за пределами этой величины.

Наконец, если Вам необходимо удалить экземпляр класса GraphingBoard, используйте метод
instance.destroy():void
Этот метод удаляет все обработчики событий, стирает всю графику, и устанавливает значения всех объектов Sprite, созданных им, в null.

Общедоступные свойства

Единственным таким свойством (за исключением всех унаследованных от класса Sprite) является динамическое текстовое поле для отображения ошибок: instance.ErrorBox.
Как упоминалось ранее управлять его свойствами можно как с помощью методов класса GraphingBoard, так и напрямую методами класса TextField, например:
instance.ErrorBox.visible = true;
instance.ErrorBox.text = “Error in f1(x). ” + compObj1.errorMes;

Класс flashandmath.as3.tools.SimpleGraph

Конструктор

new SimpleGraph(w, h)
Конструктор создает новый экземпляр класса GraphingBoard шириной w и высотой h, для доступа к которому используется геттер instance.board.

Общедоступные методы

instance.setWindow(sXmn:String, sXmx:String, sYmn:String, sYmx:String):void
Этот метод проверяет входные параметры, и при отсутствии ошибок создает пустое поле для графиков, задавая ему диапазоны изменения координат.

В каждом из следующих методов аргумент expr – это строковая величина, представляющая собой выражение для функции одной переменной с именем stVar; график данной функции будет отрисовываться на "уровне" num линиями с цветом color и толщиной thickness. Для графиков в полярных координатах или параметрических функций необходимо дополнительно задавать минимальное и максимальное значения параметров:
instance.graphRectangular(expr:String, stVar:String, num:int, thickness:Number, color:Number):void
instance.graphPolar(expr:String, stVar:String, sTmin:String, sTmax:String, num:int, thickness:Number, color:Number):void
instance.graphParametric(expr1:String, expr2:String, stVar:String, sTmin:String, sTmax:String, num:int, thickness:Number, color:Number):void

Следующий метод сообщает о наличии ошибок, возникших при анализе диапазонов изменения переменных и самих выражений:
instance.hasError():Boolean

Создав экземпляр класса SimpleGraph, мы можем взаимодействовать следующими способами:

instance.rectangularValueAt(num:int, xval:Number):Number – возвращает значение выражения (график которого отображается на “
"уровне" num) при значении переменной равном xval. Для функций в декартовых координатах.

instance.polarValueAt(num:int, theta:Number):Number – аналогичный метод для функций в полярных координатах.

instance.parametricValueAt(num:int, tval:Number):Array – тоже аналогично, но возвращает не число, а массив, содержащий два элемента [x(val), y(tval)].

Во многих случаях не возникает необходимости рассчитывать значения выражений (графики которых строятся) отдельно. Но для доступа к значениям координат точек (в пикселях), по которым строится график, существует метод:
instance.getPixData(num:int):Array, возвращающий массив, состоящий из массивов по три элемента в виде [xcrd, ycrd, rotat], где первые два элемента – координаты точки, а третий – угол наклона касательной к графику функции в данной точке (этот угол можно использовать, например, при необходимости показать касательную в данной точке).

Получить остальные важные данные об объекте SimpleGraph и функциях, графики которых были построены, можно следующими методами:
instance.getCompiledObject(num:int):Array
instance.getVariable(num:int):String – возвращает имя переменной функции
instance.getNumPoints():int – возвращает количество точек, по которым был построен график
instance.setNumPoints(np:int):void – задает количество точек, по которым будут строится графики. Изменяя данное значении, можно регулировать точность построения графика.

Метод
instance.addChildToBoard(obj:DisplayObject):void
добавляет графический объект obj в область отрисовки графиков, таким образом к нему применяется маска объекта board (экземпляра класса GraphingBoard).

Названия следующих методов говорят сами за себя:
instance.removeGraph(num:Number):void
instance.destroy():void


Общедоступные свойства

Единственным таким свойством является свойство board:GraphingBoard, поэтому для настройки внешнего вида области графиков можно использовать методы класса GraphingBoard, обращаясь к данному свойству.

Комментариев нет:

Отправить комментарий