Библиотека деловой и научной графики ChartLib
Версия 1.3,
июль 2006,
|
Введение | Команды | Серии | Выражения | Интерактивность |
|
Библиотека функций ChartLib предназначена для построения графиков по таблицам данных. ChartLib строит графики различных типов. Среди них двумерные графики, содержащие точки, линии и многоугольники; графики с разрывной горизонтальной осью; многодневные графики; биржевые свечные графики; вертикальные и горизонтальные гистограммы; сетевые и древовидные схемы. |
|
Библиотека ChartLib имеет собственный формат входных данных CHD (CHart Description). Файлы формата CHD представляют собой обычный табулированный текст с «вкраплением» командных строк, задающих структуру и внешний вид графика (см. примеры). Поддерживается более 150 команд (см. также Глоссарий команд), более 50 свойств точек графика, имеется встроенный калькулятор арифметических выражений. |
|
ChartLib позволяет выводить графики в окно прикладной программы, на принтер и в файлы графических форматов BMP, EMF, PNG, JPEG, GIF. Графические изображения могут быть импортированы в офисные документы через буфер обмена. ChartLib имеет богатые возможности для работы с цветами, заливками, рамками, формой объектов, и т.д., позволяя создавать профессиональный дизайн графиков. |
|
При выводе графика в окно ChartLib позволяет масштабировать и сдвигать изображения, выделять точки и просматривать дополнительную информацию о них, выбирать подмножества точек и выводить по ним отдельную информационную таблицу. В режиме трехмерной графики поддерживаются произвольные перемещения по сцене. |
|
Несколько графиков могут быть отображены на одном слайде. При этом поддерживается возможность синхронного масштабирования осей. Несколько слайдов могут быть собраны в фильм. При выводе графика в окно можно включить режим просмотра фильма, когда слайды будут сменять друг друга автоматически. |
|
Библиотека ChartLib может использоваться для генерации часто обновляемых графиков в Интернете (биржевой информации, голосования, серверной статистики). Она позволяет генерировать PNG, JPEG или GIF изображения с частотой до нескольких раз в секунду (в зависимости, конечно, от сложности изображения). Библиотека ChartLib переносима под UNIX. |
На основе библиотеки ChartLib разработан пакет программ ChartLive для MS Windows, в состав которого входят:
Введение | Команды | Серии | Выражения | Интерактивность |
Библиотека ChartLib ориентирована на прием входных данных в виде потока строк формата CHD (CHart Description).
Строки могут быть двух видов: управляющие команды и данные.
Управляющие команды начинаются символом # в первой позиции. Пустые строки игнорируются. Строки, начинающиеся с ##, воспринимаются как комментарии и также игнорируются. Если в конце строки стоит многоточие "...", то она продлевается на следующую строку.
По мере поступления строки данных дописываются снизу к текущей матрице. Слайд может иметь любое количество матриц, но текущей в каждый момент времени является только одна. Поток данных можно переключать с одной матрицы на другую с помощью команды Data. Значения внутри текстовой строки данных разделяются запятыми или символами табуляции. Значения, содержащие текущий разделитель, необходимо заключать в кавычки.
Даты задаются в формате YY[YY]/M[M]/D[D] или D[D]/M[M]/YYYY. Время задается в формате hh[:mm[:ss]]. Дата и время отделяются пробелом или знаком подчеркивания. Если задана только дата, время полагается равным 00:00:00. Если задано только время, в качестве даты берется значение параметра SystemDate или системная (сегодняшняя) дата, если этот параметр не задан. Значения типа дата/время можно также задавать целыми числами, совместимыми с типом time_t языка С, обычно такое число интерпретируется как число секунд, прошедших с полуночи 1 января 1970 года.
В строках данных допускаются пустые значения. Они задаются либо пропуском значения (два разделителя подряд), либо тремя вопросами ???. Пропуск в данных обрабатывается следующим образом. Если это существенное данное, такое как координата точки, то соответствующий элемент графика — точка, линия или площадь — не отображается. Если это вспомогательный параметр, такой как форма или цвет точки, то при отображении используется значение по умолчанию.
Синтаксис строк данных можно настроить с помощью команды Syntax. Она позволяет изменить допустимые разделители, символы кавычек и кодировку пустых значений.
Библиотека ChartLib оперирует объектами четырех уровней:
Слайды
Основным рабочим объектом является слайд.
Слайд — это изображение,
которое целиком выводится в пользовательское окно или графический файл.
Слайд создается командой NewSlide. Созданный слайд сразу становится активным — именно к нему будут относиться все последующие команды и строки данных. Переключить активный слайд можно в любой момент с помощью команды Slide.
Фильмы
Фильм — это последовательность слайдов.
При просмотре слайда в окне пользователь имеет возможность
переключаться с одного слайда на другой внутри одного фильма.
Слайд вставляется в фильм командой SetFilm. Слайд не может принадлежать нескольким фильмам одновременно. Внутри фильма слайды располагаются в порядке их создания.
Задать имя фильма можно также при создании слайда командой NewSlide. По умолчанию, если имя фильма не задано, слайд вставляется в фильм с именем default.
Панели на слайдах
Слайд может содержать один или несколько графиков, текстовые поля и легенду.
График вместе с примыкающими к нему вспомогательными областями
(заголовками, осями и их названиями) образует панель.
Каждая панель имеет уникальное имя, которое дается ей
при создании командой NewPanel.
Созданная панель сразу становится активной,
и в нее направляется входной поток команд.
Любую панель можно активизировать по имени или порядковому
номеру на слайде командой Panel.
Если на слайде создано несколько панелей, их размещение и относительные размеры задаются командой Group. Без этой команды панели имеют одинаковый размер и размещаются друг под другом.
Использовать команды SetFilm, NewSlide и NewPanel в явном виде не обязательно. Если их не использовать, будет автоматически создан фильм default с единственным слайдом default, содержащий единственную панель с именем default.
Области на панелях
Для формирования внешнего вида панелей модифицируются свойства отдельных
областей на панелях слайда.
Ниже приводится перечень областей, из которых
составляются панели различных типов.
Chart | Двумерный график — основной объект на панели |
Title | Заголовок графика, выводимый над графиком |
TitleBelow | Заголовок графика, выводимый под графиком |
XAxis | Горизонтальная ось |
YAxis | Основная вертикальная ось |
ZAxis | Вторая вертикальная ось. Не изображается, если ни одна точка графика не имеет параметра Z |
XName | Название горизонтальной оси, размещается внизу |
YName | Название основной вертикальной оси, размещается вверху слева |
ZName | Название второй вертикальной оси, размещается вверху справа |
TextNear | Текстовое поле для надписей рядом с точками |
TextInner | Текстовое поле для надписей внутри точек |
TextRight | Текстовое поле для надписи рядом с активной точкой |
Chart | Круговая диаграмма — основной объект |
Title | Заголовок над графиком |
TitleBelow | Заголовок под графиком |
TextNear | Текстовое поле для надписей рядом с секторами |
TextInner | Текстовое поле для надписей внутри секторов |
TextRight | Текстовое поле для надписи рядом с активным сектором |
Text | Текстовое поле — основной объект |
StatusBar | Панель 0 — статусная строка |
Управляющие команды предназначены для задания свойств объектов на слайде и переключения входного потока строк между фильмами, слайдами и матрицами данных.
Управляющие команды бывают трех видов:
# имя_объекта . имя_параметра = значение # имя_параметра = значение # имя_объекта = значение
В первом случае команда присваивает значение параметру указанного объекта на текущем слайде. Текущий слайд также является объектом. К нему можно обратиться по имени Slide или по имени, данному ему при создании командой NewSlide.
Во втором случае имя объекта опущено, и команда относится к текущему объекту на слайде. Для всех графиков это объект Chart. Если на слайде несколько панелей с графиками, то текущим считается объект Chart на панели, активизированной последней командой Panel или NewPanel. Текущая панель также является объектом, и к ней можно обратиться по имени Panel или по имени, данному ей при создании командой NewPanel.
В третьем случае имя параметра опущено, и команда относится к основному свойству объекта. Для заголовков, названий осей и других текстовых объектов основным свойством является Text, для легенды — Line. Например, следующие команды эквивалентны:
#Title.Text = график зависимости #Title = график зависимости
При поиске объекта по имени сначала просматриваются все объекты текущей панели, затем все объекты текущего слайда. Если объект не найден, команда игнорируется. Описанные правила служат для сокращения записи и позволяют в большинстве случаев обходиться командами "без точки".
Некоторые команды не относятся ни к одному из объектов. Они служат для управления слайдами и установки глобальных параметров.
Знак равенства можно заменять пробелом. Имена команд чувствительны к регистру. Например, команда Visible=on верна, а команда visible=on — ошибочна и будет проигнорирована.
Формат CHD очень прост, если не заниматься дизайном графика. Для описания графика вполне хватает двух команд NewData и Series, за которыми следуют строки данных.
Команда NewData создает новую матрицу данных с заданными столбцами и делает ее текущей. Число значений в каждой последующей строке данных должно равняться количеству столбцов в матрице.
Команда Series создает серию точек на графике и описывает ее свойства, такие как X-координата, Y-координата, цвет, форма точки, и т.д. Каждое свойство может быть либо константой, либо именем столбца данных из какой-либо матрицы текущего слайда. Cвойства точек подробно описаны в разделе Серии.
Следующий график показывает динамику цен и объемов торгов акциями компании ЛУК ОЙЛ на ММВБ с февраля по ноябрь 1999 года.
График был построен по входному потоку данных, содержавшему по 3 значения в каждой строке: дату, цену и объем. Каждая строка соответствовала одному дню. Ниже приводится начальный отрывок входного потока:
#NewData day, price, value #Series X=day Y=price S=0 LC=1 #Series X=day Z=value S=0 LC=3 28/01/99 25.35 216335 29/01/99 25.68 124938 01/02/99 25.57 10226 ...
У этого графика много недостатков: даты отображаются числами, отсутствует заголовок и названия осей, слишком много нулей в метках правой вертикальной оси, и так далее... Таково форматирование графика по умолчанию.
Тот же график можно сделать существенно более понятным и привлекательным, если задать фоновую заливку, установить русскую локализацию, добавить заголовки и еще несколько команд форматирования:
#Locale= rus #Slide.Background = 17 17 7 7, bidir #Slide.GradMaxSize = 2 #Title Торги акциями ЛУК ОЙЛ, 1999 год #YName = цена #ZName= объем, млн. руб #XAxis.Type = date #YAxis.Color = 1 #ZAxis.Color = 3 #NewData day, price, value #Let vmill= value / 1000000 #Series X=day Y=price S=0 LP=2 LW=2 LC=1 #Series X=day Z=vmill S=0 LP=2 LW=1 LC=3 FD=1 FP=2 FC=15 #Series X=day Z=0 S=0 28/01/99 25.35 216335 29/01/99 25.68 124938 01/02/99 25.57 10226 ...
Продолжим пример с графиком хода торгов. Биржевые графики часто рисуют друг под другом: сверху цены, снизу объемы. Ход цены изображают с помощью интервальных гистограмм или японских подсвечников:
Данные для этого графика те же самые, что и в примерах 1 и 2. Слайд разбивается на две панели командами NewPanel. Команда Group размещает эти панели друг под другом и говорит, что верхняя панель в три раза выше. Команда CandleWidth задает ширину подсвечников в секундах (в данном случае одна неделя).
## определяем данные #NewData day, price, value #Let vmill= value / 1000000 #Slide.Background = 17 17 7 7, bidir #Slide.GradMaxSize = 2 ## определяем верхнюю панель цен #NewPanel price #Title Торги акциями ЛУК ОЙЛ, 1999 год #YName = цена #XAxis.Type = date #XAxis.Visible off #Series X=day MC=price MS=2 C=7 #CandleWidth 1 weeks ## определяем нижнюю панель объемов #NewPanel volume #Title.Border 0, 1, 0, 1 #Title.IndentVert = 0 #XAxis.Type = date #XAxis.SpaceVert = 1 #XAxis.IndentVert = 0 #Series X=day MC=vmill ML=0 MS=3 C=15 #CandleWidth = 1 weeks ## располагаем панели друг под другом, синхронизируем оси #Group (3,1)(1) main = price, volume #SyncAxis price.XAxis, volume.XAxis 27/01/99 24.85 66913 28/01/99 25.35 216335 29/01/99 25.68 124938 ...
Можно пойти дальше и построить третий график по тем же колонкам данных. Например, это могла бы быть гистограмма распределения объемов торгов по ценам, дающая нестандартное представление биржевых торгов.
Создадим еще одну панель и разместим на ней гистограммную серию. Для построения гистограммы распределения необходимы две дополнительных команды. HorizHist говорит, что гистограмма горизонтальная и каждая точка отображается отдельно внутри столбца. Команда ColWidth задает ширину колонки гистограммы.
## определяем данные #NewData day, price, value #Let vmill= value / 1000000 #Slide.Background = 17 17 7 7, bidir #Slide.GradMaxSize = 2 ## определяем верхнюю панель цен #NewPanel price #Title Торги акциями ЛУК ОЙЛ, 1999 год #YName = цена #XAxis.Type = date #XAxis.SpaceVert = 1 #XAxis.IndentVert = 0 #XAxis.RulePose both #Series X=day MC=price MS=2 C=7 #CandleWidth 1 weeks ## определяем нижнюю панель объемов #NewPanel volume #Title.IndentVert = 0 #XAxis.Type = date #XAxis.Visible off #Series X=day MC=vmill ML=0 MS=3 C=15 #CandleWidth = 1 weeks ## определяем правую панель с гистограммой объемов #NewPanel hist #HorizHist = detailed #ColWidth = 5 #YAxis.Visible off #Series Y=price HW=vmill HS=time C=15 ## располагаем панели друг под другом, синхронизируем оси #Group (3,1)(2,1) main = price, hist, volume #SyncAxis price.XAxis, volume.XAxis #SyncAxis price.YAxis, hist.YAxis 27/01/99 24.85 66913 28/01/99 25.35 216335 29/01/99 25.68 124938 ...
Точнее, данные можно вычислять по формулам. Например, чтобы построить график функции номального распределения, достаточно всего четырех строк описания:
#Let x= RowIndex/5-4 #Let y= FNorm(x) #ResizeData 40 #Series X=x Y=y
Команда Let создает новый столбец данных, значения в котором вычисляются по указанной формуле. Встроенная переменная RowIndex дает порядковый номер текущей точки, а команда ResizeData устанавливает число строк в столбцах x и y, то есть число точек на графике.
Вот что в итоге получается:
Введение | Команды | Серии | Выражения | Интерактивность |
Условные обозначения в описаниях команд:
В этом разделе описаны свойства, которыми обладают все объекты без исключения: слайды, панели, графики, оси, тексты.
Совет:
Применяйте команду #Slide.Visible=off,
если хотите, чтобы слайд пропускался при прокрутке фильма.
Первые четыре параметра задают цвета левого верхнего, правого верхнего, правого нижнего и левого нижнего углов закрашиваемой области соответственно. Эффективность прорисовки выше для вертикального (LT=TR, RB=BL) и горизонтального (TR=RB, BL=LT) градиента.
Необязательный параметр bidir задает двустороннюю заливку.
Совет:
Применяйте эту команду к объекту TextRight,
чтобы задать полупрозрачный транспарант для вывода текстового комментария
рядом с активной точкой.
Совет:
С помощью команды #ZAxis.MinWidth=10 можно слегка отодвинуть правый
край графика от границы слайда.
Пример: последовательность команд
#DefStyle bsty #Background 17 #Border 2 #EndStyle #XAxis.Style bstyэквивалентна командам
#XAxis.Background 17 #XAxis.Border 2Поскольку все команды по умолчанию направляются на текущий слайд, установка стиля для самого слайда Slide.Style действует как макрос. При этом содержимое стиля исполняется в точности так, как если бы оно было записано вместо этой команды.
Невозможно определить стиль, с помощью которого можно было бы задавать общие свойства как слайду, так и другим объектам. Например, команда
#Slide.Style bstyизменит свойства Background и Border не для самого слайда, а для объекта Chart, так как для слайда он является текущей областью и все команды "без точки" направляеются именно ему.
Совет: При использовании возможности запуска точек (свойство TE) рекомендуется переопределить #Button Activate=right, чтобы избежать одновременного выполнения функций Activate и Execute.
К текстовым полям относятся: заголовки графика Title и TitleBelow; названия осей XName, YName, ZName; текстовые поля TextInner, TextRight и TextNear; панели типа text, легенды и статусная строка StatusBar. Текстовые поля могут быть многострочными с заранее заданным разбиением на строки.
#Title.Text = график синуса #Title = график синуса
Если x = y = 0 или t = 0, то тень не изображается.
Легенда представляет собой отдельную панель с комментариями. Слева от каждого комментария находится пиктограмма.
Легенда создается командой NewPanel с указанием типа панели legend. После этого легенду необходимо сгруппировать командой Group с остальными панелями слайда.
Строке легенды можно присвоить имя name. Если имя не указано, по умолчанию будет установлено имя "LineN", где N — порядковый номер данной строки в легенде. Повторное описание строки легенды с уже существующим именем не создает новую строку, а модифицирует старую.
Свойство Line является основным свойством панели легенды, поэтому ключевое слово Line вместе с предшествующей ему точкой можно опускать.
Пример:
#NewPanel MainChart #NewPanel Legend: legend #Legend.Line C=5 S=3 W=8 LC=3 LW=2 -Первый тренд #Legend W=0 LC=13 LW=1 -Второй тренд #Group (1,0)(1) AllPanels = MainChart, Legend ## далее следует формирование графика #Panel MainChart
Оси изображаются сбоку от графика, содержат линейку и текстовые метки. Оси могут быть горизонтальными и вертикальными. Горизонтальные оси могут быть разрывными.
Если свойство графика Chart.EmptyIntervals выключено, то будет произведен анализ данных и все интервалы, не содержащие данных, удалятся из оси. По умолчанию это свойство выключено.
Если свойство графика Chart.EmptyIntervals выключено, то будет произведен анализ данных и все интервалы, не содержащие данных, удалятся из оси. По умолчанию это свойство выключено.
Для оси дат-времени тип Type=time должен быть установлен перед командой Ranges.
Совет:
Применяйте эту команду в том случае, когда оси двух графиков синхронизированы,
но определяющим при выборе масштаба является только один график. Чтобы точки второго
графика не учитывались при автоматическом масштабировании, задайте для него #SyncMaster=off.
Пример:
Команда LabelFormat=%.2f ограничивает вывод чисел двумя знаками после
запятой.
Все команды, управляющие потоком данных, являются свойствами слайда. Слайд имеет одну или несколько матриц. Входные строки данных поступают в ту матрицу, которая в данный момент объявлена текущей. Матрицы являются основным источником данных для построения графиков.
Свойство графика Series позволяет установить соответствие между столбцами данных в матрицах и свойствами серий точек.
Имя матрицы n может быть опущено, но тогда к ней нельзя будет обратиться по имени в командах Data, ClearData, DeleteData и ResizeData.
Совет:
Если на Вашем слайде несколько матриц, и строки данных поступают вперемежку,
используйте команду Data.
Вычислимый столбец не содержится в исходных данных и не хранится в памяти, а вычисляется для каждой точки по заданному выражению expr.
Если имя name совпадает с именем уже существующего в текущей матрице столбца, то команда Let создаст еще один столбец с тем же именем. В последующих выражениях и сериях будет использоваться второй столбец, а первый станет недоступен. Для переопределения столбца следует пользоваться командой Relet, имеющей аналогичный синтаксис.
Если знак равенства и выражение expr опущены, то создается столбец хранимых данных. Такие данные можно использовать в свойстве DS для синхронного выделения точек на нескольких сериях.
Совет:
Чтобы взять столбец данных из другого слайда,
используйте в качестве имени переменной конструкцию slide.name,
где slide — имя слайда.
Альтернативный способ: после команды #DataSlide=slide к столбцам указанного слайда можно обращаться без явного указания имени слайда и точки.
Если значения min и max не указаны, команда восстанавливает стандартные (автоматические) значения минимума и максимума.
Если имя матрицы n опущено, команда применяется к текущей матрице.
Команда SetReload указывает, какие действия производить после обнаружения модификации файла.
График состоит из серий. Серия состоит из точек. Каждая точка имеет около 50 свойств. Обычно большинство свойств задаются константами или вообще опускаются. В таком случае они являются свойствами серии.
Серия не является самостоятельным объектом. Все команды, перечисленные в настоящем разделе, являются свойствами объекта Chart на панелях типа 2D.
Совет:
Задавайте этот параметр равным произвольному понедельнику на недельных
свечных графиках, иначе все свечи будут начинаться в четверг.
Задавайте этот параметр равным первому дню произвольного месяца при построении месячных графиков.
Пример: команда ZoomX = %33; %67 устанавливает отображение средней трети графика.
После загрузки слайда для всех графиков по умолчанию устанавливается ZoomX = %0; %100.
В первом варианте команды координата y0 по оси Y совмещается с координатой z0 по оси Z.
Во втором варианте совмещаются максимальные интервалы, в которых находятся все точки графика.
Третий вариант отключает синхронизацию.
Для гистограмм с вертикальными столбцами работает только AutoScaleX, с горизонтальными — только AutoScaleY.
По умолчанию RobustPoints=2, RobustLimit=0.5.
По умолчанию
#StatusOnMouseMove = "[CoordXText];[CoordYText]"Команда StatusOnMouseMove должна идти непосредственно после описания серии (командой Series), к X-координатам точек которой привязывается выводимая информация.
По умолчанию
StatusOnMouseDrag = "[CoordXStartText] -- [CoordXText]; [CoordYStartText] -- [CoordYText]"Команда StatusOnMouseDrag должна идти непосредственно после описания серии (командой Series), к X-координатам точек которой привязывается выводимая информация.
Все команды, перечисленные в настоящем разделе, так же, как и в предыдущем, являются свойствами объекта Chart на панелях типа 2D. Они работают только в том случае, если на графике присутствуют гистограммные серии точек.
Все команды данного раздела являются свойствами панели типа 3D.
Команды, работающие со слайдами и фильмами, не являются свойствами какого-либо объекта. Это глобальные команды.
По умолчанию сначала существует фильм с именем default, который имеет единственный слайд с именем default. Слайды с именем default имеют статус временных. Команда #NewSlide может заменять их на слайды с нормальными (отличными от default) именами.
Если имя опущено, то создается новый слайд с именем default и вставляется в конец текущего фильма.
Внимание! В отличие от команды CreateSlide, которая всегда создает новый слайд, команда NewSlide может заменять уже существующий слайд новым пустым слайдом. Это происходит в следующих случаях:
Параметр nslide принимает следующие значения:
Второй вариант команды разрывает связь с источником данных.
По умолчанию на слайде есть одна панель с именем default, номером 1 и типом 2D. Первая команда NewPanel заменяет ее новой панелью.
Если панель с именем n уже существует, то она уничтожается и заменяется новой.
Панели нумеруются начиная с 0 в порядке их создания на текущем слайде. Панели с номерами 0 и 1 зарезервированы для статусной строки и легенды.
Пример: команда
#Group (2,1)(2,1,1) gr5 = p1, p2, p3, p4, p5группирует панели p1, p2, p3, p4, p5 в группу gr5:
Если слайд имеет несколько панелей, а команда Group отсутствует, то по умолчанию применяется вертикальное группирование Group (1,...,1)(1).
Параметры интерактивного режима не являются свойствами какого-либо объекта. Это глобальные команды.
Совет: Если прорисовка графика в окне замедляет работу других приложений, значение этого параметра надо уменьшить.
Глобальные параметры не являются свойствами какого-либо объекта. Их действие распространяется на все объекты, в том числе на все слайды.
Описание цвета rgb представляет собой либо список трех чисел R,G,B через запятую (R-красный, G-зеленый, B-синий), либо целочисленный код, заданный десятичным числом или шестнадцатиричным в формате 0xBBGGRR (как в языке С). Если color<27, команда изменяет стандартный предопределенный цвет.
Вторая форма команды определяет в палитре диапазон ячеек с номерами от color до color2 включительно, заполняя их цветами, равномерно переходящими от rgb до rgb2.
library
Имя шрифтовой библиотеки, зависящее от операционной системы
и текущей реализации ChartLib.
Каждому стилю style должен соответствовать определенный шрифт
в каждой библиотеке library.
Параметр не может быть опущен.
В настоящей версии поддерживаются две библиотеки шрифтов:
family
Название семейства шрифта, принятое в данной шрифтовой библиотеке library.
Для библиотеки Clf это имя файла, содержащего шрифт
(расширение обязательно, возможно также указать полный путь).
width
Ширина символов в пикселах.
Если параметр width опущен или равен нулю, выбирается пропорциональный шрифт.
height
Высота символов в пикселах.
flags
Флаги дополнительных свойств шрифта, кодируемые буквами:
charset
Символьный набор, из списка:
ANSI, DEFAULT, OEM, MAC, SYMBOL, BALTIC, CHINESEBIG5, EASTEUROPE, GB2312, GREEK, HANGUL,
RUSSIAN, SHIFTJIS, TURKISH, JOHAB, HEBREW, ARABIC, THAI.
Если параметр charset опущен, предполагается ANSI.
Пример:
#DefFont title = Win: Arial Narrow, 0x16, b, RUSSIAN #DefFont title = Clf: Courier9x15BI.clf, 9x15, BI
По умолчанию при инициализации библиотеки делается попытка прочитать это имя из переменной среды CLFONTSDIR. Если такая переменная не установлена, то CLF-шрифты будут считываться из текущей директории. Если в текущей директории CLF-шрифты отсутствуют, то надписи на формируемых изображениях формата PNG и JPEG будут отсутствовать.
Запомненный список команд (стиль) может быть применен в дальнейшем к любой области, в том числе к слайду, с помощью команды Style.
Совет: Важно не забыть эту команду в конце определения стиля. Иначе все последующие команды будут не выполняться, а запоминаться в стиле.
Стандартное функционирование кнопок для всех объектов:
#DefaultButton Shift = right #DefaultButton Zoom = left #DefaultButton Select = shift+left #DefaultButton Activate = left #DefaultButton Execute = left #DefaultButton Ignore = ctrl,alt,middleСтандартное функционирование кнопок может быть изменено для каждого объекта в отдельности аналогичной командой Button.
Совет: При использовании возможности запуска точек (свойство TE) рекомендуется переопределить #Button Activate=right, чтобы избежать одновременного выполнения функций Activate и Execute.
В строках symbolsi разрешается указывать непечатные спецсимволы.
По умолчанию входной синтаксис задан командой
#Syntax = C{#} N{.} T{:} D{/} Q{""} F{\t,} E{???}
Отладочные команды предназначены для сброса служебной информации в файлы. В процессе работы библиотека может генерировать файлы трех типов:
Обычно в качестве выражений используются текстовые строки со вставками.
Эти команды являются свойствами объекта Chart на панелях типа 2D. Они связаны с командой Format, работавшей в ранних версиях библиотеки. Эти команды, а также свойства серий DR, DB, DT в дальнейшем могут не поддерживаться.
Управляющая команда Format совмещает в себе команды NewData, Let и Series. По причине своей крайней перегруженности она не будет поддерживаться в следующих версиях библиотеки. С ней связаны команды Matrix, MatrixClear, MatrixEnable и SeriesSize, также считающиеся устаревшими. Вместо них рекомендуется использовать команды NewData, Data, ClearData, ResizeData, SeriesOn и SeriesOff.
Команда Format задает свойства серий с помощью списка свойств так же, как это делает команда Series, но со следующими отличиями:
Описание 1
#Let x= RowIndex/10-4 #Let y= exp(-x^2/2) #Let z= FNorm(x) #Series p: X=x Y=y S=0 LC=13 LW=2 #Series f: X=x Z=z S=0 LC=33 LW=2 #SeriesSize 80: f, pОписание 2
#Format X=(RowIndex/10-4) Y=(exp(-X^2/2)) S=0 LC=13 LW=2 ... \ Z=(FNorm(X)) S=0 LC=33 LW=2 #SeriesSize 80
Если список серий опущен, берется последняя созданная серия.
Команда MatrixClear действует только на имеющиеся в данный момент серии, поэтому она должна даваться после команды Format.
Команда MatrixEnable действует только на имеющиеся в данный момент серии, поэтому она должна даваться после команды Format.
Цвет любого объекта на слайде задается номером в палитре. Примерами команд, задающих цвет, являются Color и BorderColor. Цвета точек в команде Series также задаются номерами в палитре с помощью цветовых свойств серий C, G, LC, LG, FC, FG.
Стандартная палитра библиотеки ChartLib содержит 27 цветов с номерами от 0 до 26. Команда DefColor позволяет добавлять новые цвета и переопределять уже имеющиеся. Изменения, сделанные в палитре цветов, глобальны, и влияют на все слайды и фильмы.
Введение | Команды | Серии | Выражения | Интерактивность |
Внешний вид серии точек на графике определяется набором ее свойств. Каждое свойство может быть либо общим для всей серии, либо индивидуальным для каждой точки. Если свойство не задано, оно принимается равным стандартному значению по умолчанию. Названия, смысл и стандартные значения всех свойств перечисляются ниже.
Серия создается командой Series. Каждое свойство серии задается одно- или двухбуквенным именем, за которым следует знак равенства и значение. Значением должна быть либо числовая константа, либо имя столбца данных, определенного командами NewData или Let. Свойства разделяются запятыми или пробелами.
Например, следующая команда образует новую серию с именем priceline:
#Series priceline: X=time Y=price S=0 LP=2 LC=1В этой серии координаты точек X и Y задаются столбцами данных time и price соответственно. Свойства S, LP и LC одинаковы для всех точек серии. Все остальные свойства имеют стандартные значения.
Созданную серию можно переопределить заново, повторно задав команду Series с тем же именем серии и другими значениями свойств. Например, чтобы заменить красный цвет линий на синий, следует дать команду
#Series priceline: X=time Y=price S=0 LP=2 LC=3Тот же результат достигается более короткой командой:
#SeriesModify priceline: LC=3Команда SeriesModify имеет тот же синтаксис, что и Series, но в отличие от последней не создает серию заново, а только изменяет указанные свойства.
Имя серии можно опускать при создании серии. Однако если после этого определить еще одну серию, то доступ к первой для команд Series, SeriesOn, SeriesOff, SeriesModify и SeriesSize будет закрыт навсегда.
Число точек в серии равно максимальной длине столбцов данных, указанных в свойствах серии. Обычно все столбцы имеют одинаковую длину, однако это условие не является обязательным. Недостающие значения интерпретируются как пустые.
Если свойства серии не ссылаются ни на один столбец данных, определенный командой NewData, то число точек в такой серии по умолчанию равно нулю. Чтобы явным образом задать число точек, следует использовать команду SeriesSize или ResizeData.
Точки изображаются на графике фигурами фиксированного размера в пикселах.
Если точка имеет свойство TI, то ее размер устанавливается по тексту TI, который изображается внутри точки. При этом свойство S регулирует форму фигуры, заключающей этот текст:
Если заданы свойства BX, BY, BZ, точка изображается не фигурой фиксированного размера в пикселах, а боксом. Бокс — это прямоугольник на двумерном графике или параллелепипед на трехмерном графике. Свойства X, Y, (Z) и BX, BY, (BZ) задают координаты двух противоположных углов бокса. К боксам применимы все свойства точек кроме W.
Если у бокса задать S=1, то он становится невыделяемым и неактивизируемым. С помощью таких боксов можно "замостить" фоновый рисунок.
Серия считается гистограммной, если она содержит одно из свойств HS или HW. В текущей реализации ChartLib на графике может находиться только одна гистограмма (это ограничение будет снято в дальнейшем). Она строится по всем точкам всех гистограммных серий. При этом на гистограмму могут накладываться обычные графики.
Биржевые графики отличаются тем, что вместо точек на них изображаются свечи. Свеча имеет четыре Y-координаты: цена открытия, максимальная цена, минимальная цена и цена закрытия.
Строки в матрице данных соответствуют либо отдельным сделкам, либо интервалам времени. В первом случае достаточно задать MC равным цене (или объему) сделки. Во втором случае необходимо задать все четыре параметра MO, MH, ML, MC. В обоих случаях форма свечей вычисляется согласно параметру CandleWidth, который задает длительность всех свечей в секундах.
Cвойства TR и TB работают только при выводе графика в окно.
Линиями можно соединять последовательные точки одной серии, либо соответствующие точки соседних серий. Для соединения произвольных точек следует использовать парные соединения.
Серия, содержащая свойства PA и PB, описывает линии, а не точки. Концы каждой линии задаются ключевыми номерами соединяемых точек. Все свойства такой серии, за исключением параметров линии LC, LG, LI, LW, LS, LP, LD, LA, игнорируются. Если указано только одно из свойств PA или PB, вся серия игнорируется. Соединять можно любые точки, даже если они находятся в разных сериях. Нельзя соединять точки, находящиеся на разных панелях.
К любой точке можно привязать заливку. Свойство FD устанавливает, какие еще точки следует использовать наряду с текущей для определения формы заливки.
При FD=3,4,5,6 используются только 2 точки, заливается четырех(5,6)угольник, ограниченный параллельными прямыми.
При FD=7,8 используются 3 точки, заливается тре(4,5)угольник.
Контур заливки определяется парой свойств FD и FP. Например, следующая таблица отличается от предыдущей тем, что вместо FP=1 было задано FP=3:
Свойства DB, DR, и DT введены для того, чтобы в команде Format можно было определять столбцы данных, не имеющие непосредственного назначения и используемые только в выражениях. В каждой серии можно задавать сколько угодно полей данных.
Как и сама команда Format, эти свойства являются анахронизмами и, возможно, не будут поддерживаться в следующих версиях библиотеки. Вместо них следует использовать команду Let.
Введение | Команды | Серии | Выражения | Интерактивность |
Библиотека ChartLib оснащена встроенным калькулятором выражений. Выражения используются главным образом в командах Let и Format для определения вычислимых столбцов в матрицах данных. Кроме того, выражения задаются в командах Status, DumpData, DumpPcode.
Выражения строятся из переменных, констант, знаков операций, функций, и скобок любого уровня вложенности.
В роли переменных выступают имена столбцов данных, введенных командами NewData и Let. Имена переменных могут состоять из любых символов, однако если имя содержит спецсимволы (знаки операций, скобки) или пробелы, его следует заключать в апострофы.
Область действия имен ограничивается текущим слайдом. Чтобы обратиться к столбцу данных, определенному на другом слайде, следует использовать "имя с точкой":
ИмяСлайда . ИмяСтолбцаДанныхИмена переменных и предопределенных констант чувствительны к регистру, например PI — это константа, а pi — переменная; переменные XYZ и xyz различны. В то же время имена функций не чувствительны к регистру, например sin, SIN и Sin — три корректных имени функции синуса.
Приведение типов в выражениях осуществляется автоматически, но можно использовать также функции преобразования типа (см. ниже). Типы bool и datetime являются подмножествами int. При приведении числовых типов к bool положительные значения преобразуются в true, отрицательные и 0 — в false. Тип error эквивалентен строковому и содержит сообщение об ошибке.
Целочисленные константы можно задавать как в десятичной системе счисления, так и в бинарной или шестнадцатеричной, например:
Вещественные константы задаются либо в экспоненциальной форме, либо с плавающей точкой:
2.345e+8 2345E-8 20.345Строковые константы записываются в двойных кавычках. В строковые константы можно включать символы с любыми кодами, в том числе следующие спецсимволы:
Константы даты-времени задаются как строковые с преобразованием типа. По умолчанию разделителем года, месяца и дня в датах является символ "/". Разделитель можно изменить командой Syntax:
datetime ("2005/08/21 11:15:20").Неинициализированные значения, которым в матрице данных соответствует пропуск или ???, имеют значение empty. Преобразование empty к числовым типам дает 0, к строковому типу — "empty".
По умолчанию в библиотеке предопределены значения некоторых констант, которые можно использовать во всех выражениях:
empty = empty; false = 0; true = 1; PI = 3.1415926535897931; MINUTE = 60; HOUR = 60 * 60; DAY = 60 * 60 * 24; WEEK = 60 * 60 * 24 * 7;
Имеются предопределенные переменные, которые можно использовать при вычислении свойств серий и статусных комментариев.
RowIndex или @ | номер строки в матрице (нумерация строк начинается с нуля) |
RowsCount | число строк в матрице |
MinX, MaxX | Отображаемый диапазон по оси X в реальных координатах |
MinY, MaxY | Отображаемый диапазон по оси Y в реальных координатах |
CandleLeft | X-координата левого края свечи |
CandleRight | X-координата правого края свечи |
CandleOpen | Y-координата первой точки свечи (цена открытия) |
CandleClose | Y-координата последней точки свечи (цена закрытия) |
CandleLow | минимальная Y-координата точек свечи |
CandleHigh | максимальная Y-координата точек свечи |
CandleCount | число точек, которыми образована свеча |
CoordX,
CoordXText |
X-координата курсора мыши, пересчитанная в реальные координаты |
CoordY, CoordYText |
Y-координата курсора мыши, пересчитанная в реальные координаты |
CoordZ, CoordZText |
Y-координата курсора мыши, пересчитанная в реальные координаты относительно оси Z, если она имеется на графике. |
CoordXStart, CoordXStartText |
X-координата курсора мыши в начальной точке при выделении прямоугольной области, пересчитанная в реальные координаты |
CoordYStart, CoordYStartText |
Y-координата курсора мыши в начальной точке при выделении прямоугольной области, пересчитанная в реальные координаты |
Переменные с суффиксом Text содержат значения координат, оптимально отформатированные с учетом текущего масштаба графика.
Всякая переменная, объявленная командой NewData или Let, содержит на самом деле не одно значение, а целый столбец данных. Имя переменной означает "взять из столбца текущее значение". Например, в команде
#Series X=xx Y=yyинструкция X=xx говорит, что X-координату каждой i-ой точки серии необходимо взять из i-ой ячейки столбца xx.
Операция прямого доступа к столбцу позволяет обращаться к ячейкам, позиция которых отлична от текущей. Для этого после имени переменной указывается номер ячейки, заключенный в квадратные скобки.
В следующем примере треугольником будут отмечены только точки с положительной Y-координатой, у которых предыдущая точка имела отрицательную Y-координату:
#Let byte ss = if (yy[@-1]<0 and yy>0, 5, 0) #Series X=xx Y=yy S=ssНомер текущей ячейки всегда содержится в переменной @ или RowIndex. Нумерация ячеек начинается с нуля. Записи yy и yy[@] в выражениях эквивалентны.
Еще одно полезное применение — обращение к данным, хранящимся в другой матрице. Допустим, на графике изображаются точки нескольких классов, причем точек может быть очень много, а число классов невелико. Рядом с каждой точкой должно выводиться имя класса (name), которое может быть довольно длинным. Держать дублирующую информацию об именах классов в основной матрице точек не рационально. Лучшее решение заключается в том, чтобы завести отдельную матрицу для имен классов:
#NewData text class_name #NewData xx, yy, class_id #Let text tr = class_name[class_id] #Series X=xx Y=yy TR=tr С=class_id
Строка со вставками — это специальный тип строкового выражения. Она записывается как строковая константа, внутри которой содержится одно или несколько выражений, заключенных в квадратные скобки. Эти выражения вычисляются, преобразуются в символьные строки и результат вставляется в соответствующее место строки. Вставляемые выражения не могут сами содержать строковых констант.
Строки со вставками используются для сокращения записи конкатенаций и форматирования числовых значений. Например, следующие выражения эквивалентны, но последнее имеет более понятную запись:
"Число пи=" & PI & ", более точно пи=" & format ("%.16f", PI) & "." "Число пи=[PI], более точно пи=[PI%.16f]."Результатом обоих выражений будет строка
Число пи=3.14159, более точно пи=3.1415926535897931После выражения-вставки может следовать формат вывода, начинающийся знаком % и продолжающийся до закрывающей квадратной скобки. Такие же форматы вывода используются в функции format.
Числовые форматы используются в строках
со вставками и в функции format.
Форматы задаются по правилам функции printf языка С.
Числовой формат начинается со знака %
и завершается одной из ключевых букв d, i, b, o, u, x, X, f, e, E, g, G.
Между % и ключевой буквой могут быть указаны необязательные параметры:
%[flag][width]d или i | целое число со знаком |
%[flag][width]u | целое число без знака |
%[width]b | двоичное целое число без знака |
%[flag][width]o | восьмеричное целое число без знака |
%[flag][width]x | шестнадцатеричное целое без знака, используются прописные буквы a, b, c, d, e, f |
%[flag][width]X | шестнадцатеричное целое без знака, используются заглавные буквы A, B, C, D, E, F |
%[flag][width][.prec]e
%[flag][width][.prec]E |
вещественное в экспоненциальной форме: 1.2e4, 3.1E-4 |
%[flag][width][.prec]f | вещественное с плавающей точкой: 12000.0, 0.00031 |
%[flag][width][.prec]g
%[flag][width][.prec]G |
кратчайшая из двух форм: e и f |
Форматы дат и времени используются в строках со вставками и в функции format.
Форматы задаются по правилам функции strftime языка С. В отличие от числовых форматов любое количество форматов дат-времени можно объединить для вывода одного значения. Например, результатом выражения
"Today [now() %#d %B %Y, %A, %H:%M:%S]."будет строка вида
Today 4 February 2000, Monday, 15:04:55Необязательный аргумент [flag] может принимать только одно значение #. Для форматов %#c и %#x он выводит дату в более подробной форме. Для остальных форматов — удаляет лидирующие нули (4 вместо 04).
%[flag]c | стандартное представление даты и времени |
%[flag]x | стандартное представление даты |
%X | стандартное представление времени |
%[flag]Y | четырехзначный год (от 1970) |
%[flag]y | последние две цифры года (от 00 до 99) |
%B | полное название месяца |
%b | сокращенное название месяца |
%[flag]m | номер месяца (от 01 до 12) |
%[flag]d | день месяца (от 01 до 31) |
%[flag]H | часы (от 00 до 24) |
%[flag]I | часы (от 00 до 12) |
%p | индикатор до полудня / после полудня |
%[flag]M | минуты (от 00 до 59) |
%[flag]S | секунды (от 00 до 59) |
%a | сокращенное название дня недели |
%A | полное название дня недели |
%[flag]w | порядковый номер дня недели (0=воскресенье, 1=понедельник, ..., 6=суббота.) |
%[flag]j | порядковый номер дня в году (от 001 до 366) |
%[flag]U | порядковый номер недели в году (от 00 до 51) если неделя начинается с воскресенья |
%[flag]W | порядковый номер недели в году (от 00 до 51) если неделя начинается с понедельника |
%z
%Z |
полное и сокращенное название часового пояса |
Форматы даты-времени b, d, x, X конфликтуют с одноименными числовыми форматами. Если одна из этих букв оказалась последней в формате даты-времени, то после нее следует поставить букву T:
"Today [now() %#xT]."
В выражениях допускаются следующие операции (в порядке повышения приоритета):
, | последовательное вычисление |
:= | присваивание |
or | логическое ИЛИ |
and | логическое И |
not | логическое НЕ |
<= >= <> < > = | операции сравнения |
& | конкатенация строк |
+ - | арифметическое сложение и вычитание |
* / mod | арифметическое умножение, деление и остаток |
^ | возведение в степень |
Приоритет операций может быть изменен с помощью скобок.
Операции присваивания и последовательного вычисления используются для сокращения записи и повышения скорости вычислений. Смысл этих операций и их использование аналогичны языку C. Например, следующие два выражения выдают один и тот же результат, но второе короче и вычисляется эффективней:
sqrt(a*a+b*b) + 1/sqrt(a*a+b*b) R:=sqrt(a*a+b*b), R+1/RРезультатом операции последовательного вычисления является последнее выражение в списке.
Результатом операции присваивания является значение выражения справа от знака :=. Переменные, стоящие слева от знака :=, являются локальными и не должны совпадать с именами столбцов данных.
Небольшое отличие от языков программирования типа C и Pascal имеется в операциях сравнения. Запись
0 < x < 1корректна и имеет общепринятый математический смысл, то есть является сокращенной записью выражения
0 < x and x < 1Допускаются цепочки сравнений произвольной длины, включающие любые из 6 операций сравнения, например
0 < x <= y1 = y2 > 1
Функции в общем случае могут иметь произвольное число аргументов, которые записываются после имени функции в скобках через запятую.
По числу аргументов функции разбиваются на 4 группы:
Ниже приводится полный перечень допустимых функций с их спецификациями и описаниями. Спецификации указывают типы всех аргументов и возвращаемого значения.
Спецификации приводятся в виде
имя_функции (типы_входных_аргументов): тип_значенияНеобязательные аргументы заключаются в квадратные скобки [ ]. Аргументы, которые могут повторяться более одного раза, заключаются в фигурные скобки { }. Слово any означает, что аргумент может иметь произвольный тип.
Введение | Команды | Серии | Выражения | Интерактивность |
При выводе слайда в окно библиотека поддерживает ряд интерактивных возможностей.
Функции навигации по графику и просмотра точек поддерживаются на уровне библиотеки ChartLib.
Горячие клавиши поддерживаются компонентом TSliChart.
Функции меню реализованы в утилите просмотра chdView.
Навигация по двумерному графику осуществляется с помощью мыши. Функционирование кнопок мыши может быть изменено командами Button и DefaultButton.
Масштабирование производится при выделении прямоугольной области левой кнопкой мыши. Выделение слева направо увеличивает масштаб, выделение справа налево возвращает график к автоматическому масштабу, при котором видны все точки графика.
Сдвиг графика производится движением мыши с нажатой правой кнопкой.
Масштабирование по оси производится, если потянуть за ось при нажатой левой кнопке мыши. Движение в сторону положительного направления оси увеличивает масштаб (растягивает график), в сторону отрицательного — уменьшает масштаб (сжимает график). Масштаб по второй оси не изменяется. Неподвижной на оси остается точка, с которой начали тянуть.
Сдвиг по оси производится, если потянуть за ось при нажатой правой кнопке мыши. Направление сдвига совпадает с направлением движения вдоль оси. При этом масштаб по второй оси не изменяется.
Навигация по трехмерному графику осуществляется только с помощью клавиатуры.
Просмотр трехмерной сцены может производиться в пассивном или активном режиме. В первом случае наблюдатель, находясь в неподвижной точке, вращает, сдвигает и масштабирует сцену. Этот режим предназначен для общего обзора сцены. Во втором случае наблюдатель перемещается по сцене в произвольных направлениях, что позволяет детально изучить сцену. По умолчанию установлен пассивный режим.
В обоих режимах просмотра действуют клавиши
Переключение режима просмотра: активный / пассивный | |
Возврат в исходное положение сцены | |
Растяжение-сжатие всей сцены по оси X | |
Растяжение-сжатие всей сцены по оси Y | |
Растяжение-сжатие всей сцены синхронно по осям X и Y | |
Растяжение-сжатие всей сцены по оси Z |
В пассивном режиме действуют клавиши
Вращения сцены | |
Сдвиг сцены относительно центра окна | |
Увеличение сцены | |
Уменьшение сцены |
В активном режиме действуют клавиши
Перемещение вперед-назад | |
Поворот на месте влево-вправо | |
Перемещение, не поворачиваясь, вверх-вниз-влево-вправо | |
Смотреть выше ("поднять голову") | |
Смотреть ниже ("опустить голову") | |
Обернуться назад |
Функционирование кнопок мыши может быть изменено командами Button и DefaultButton.
Выбор подмножества точек графика при выделении области левой кнопкой мыши при нажатой клавише . Форму выделяемой области можно варьировать (прямоугольник, эллипс, полуплоскость, полоса). Щелчок на точке левой кнопкой мыши при нажатой клавише выбирает указанную точку или несколько сразу, если они перекрываются. Выбранные точки обводятся цветом (по умолчанию белым, см. также свойство графика SelectColor). Выбранными могут быть только точки, имеющие размер (S>1 и W>0).
Выдача сводной таблицы по выбранным точкам. Для каждой точки выводится текстовая строка TT. Перемещение по строкам таблицы синхронизировано с активизацией точки на графике.
Активизация любой точки нажатием левой кнопки мыши. Активизация отличается от выбора тем, что активной может быть только одна точка. Клавиши и активизируют предыдущую и следующую точку в пределах той же серии. Клавиши и позволяют перемещаться по сериям. Активная точка подсвечивается (по умолчанию желтым цветом, см. также свойство графика ActiveColor), рядом выводится текстовый комментарий TR. Повторное нажатие левой кнопки мыши на той же точке снимает активизацию.
Запуск команды операционной среды. Командная строка задается для каждой точки свойством TE.
Вывод комментария рядом с каждой из выбранных точек. Текст комментария задается для каждой точки свойством TN.
Подсветка точки, свечи или колонки гистограммы, на которой остановился курсор мыши (по умолчанию голубым цветом, см. также свойство графика HighlightColor). Одновременно в статусную строку выводится текстовый комментарий, задаваемый свойством TB .
Вывод текущих координат курсора мыши в статусную строку. Если мышь работает в режиме выделения, сдвига или масштабирования, в статусной строке сообщается размер выделяемой области.
Компонент TSliChart поддерживает все описанные выше функции навигации и просмотра, и дополнительно определяет реакцию на горячие клавиши:
Перерисовка графика без чтения из файла | |
|
Копирование графика в буфер обмена |
Печать графика на принтере | |
Вывод таблицы выделенных точек | |
Переход к следующему слайду | |
Переход к предыдущему слайду | |
Циклическое переключение режимов выделения точек: добавление, удаление, инверсия выделения | |
Циклическое переключение формы выделяемой области: прямоугольник, эллипс, полуплоскость, полоса | |
Выделение всех точек (снятие, инвертирование — в зависимости от текущего режима выделения) | |
|
Навигация по панелям слайда |
При вызове утилиты ей передается список загружаемых файлов:
chdView <опции> <файл> ... <опции> <файл> <опции>Утилита воспринимает следующие опции (между именем опции и значением опции не должно быть пробела):
-dИмяДиректории | Имя директории, из которой будут считываться все последующие файлы. |
-wШиринаОкна | Ширина окна программы просмотра графиков, в пикселах. |
-hВысотаОкна | Высота окна программы просмотра графиков, в пикселах. |
-xЛевоОкна | Позиция левого края окна программы просмотра графиков, в пикселах. |
-yВерхОкна | Позиция верхнего края окна программы просмотра графиков, в пикселах. |
-n | Создать новый слайд. Если опция не указана перед именем файла, и этот файл не содержит собственной команды #NewSlide, то содержимое файла будет загружено на предыдущий слайд. |
-s | Использовать встроенную статусную строку на каждом слайде. |
-b | Отключить двойную буферизацию. Двойная буферизация скрывает процесс прорисовки графика, выводя сразу готовое изображение. При этом расходуется дополнительный объем памяти на хранение растрового изображения графика в каждом открытом окне. |
-/ | Игнорировать остаток командной строки. |
При запуске без параметров утилита chdView показывает слайд с пустым графиком. В этом случае пользователь загружает CHD-файл для просмотра с помощью кнопок меню.
Перечисленные ниже функции меню поддерживаются только утилитой chdView. Некоторые из этих функций доступны также через панель инструментов и выпадающее меню.
Меню «Файл»
Открыть CHD-файл и загрузить его содержимое на новый чистый слайд | |
Открыть CHD-файл и загрузить его содержимое вместо текущего слайда | |
Открыть CHD-файл и загрузить его содержимое поверх текущего слайда | |
Открыть CHD-файл и загрузить его содержимое в новое окно | |
Сохранить текущий слайд | |
Сохранить все слайды фильма в серию файлов | |
Распечатать слайд | |
Закрыть все окна, выйти из программы |
Меню «Вид»
Отменить показ тектовых комментариев TR рядом с точками | |
Показывать тектовые комментарии TR только рядом с выделенными точками | |
Показывать тектовые комментарии TR рядом со всеми точками | |
Обновить слайд | |
Установить максимальный масштаб отображения для всех графиков на слайде. Максимальный масштаб позволяет увидеть все точки графика. | |
Включить/отключить режим двойной буферизации. При включенной буферизации слайд прорисовывается быстрее и без мелькания на экране, но это требует большего объема памяти. |
Меню «Выделение»
Выделять точки | |
Снимать выделение с точек | |
Инвертировать выделение точек | |
Выделить все точки графика | |
Форма выделителя области — прямоугольник | |
Форма выделителя области — эллипс | |
Форма выделителя области — полуплоскость | |
Форма выделителя области — полоса | |
Выделять/не выделять точки, находящиеся за пределами видимой в окне области графика | |
Вывести сводную таблицу по выделенным точкам |
Меню «Слайды»
Перейти на первый слайд в фильме | |
Перейти на предыдущий слайд в фильме | |
Перейти на следующий слайд в фильме | |
Перейти на последний слайд в фильме | |
Запустить показ фильма. Все слайды показываются последовательно с заданной задержкой. | |
Остановить показ фильма | |
Показывать фильм в цикле бесконечное число раз | |
Скопировать слайд в буфер | |
Очистить слайд, удалив с него все графики | |
Удалить слайд, изъять его из фильма | |
Переместить текущий слайд, поставив его первым в фильме | |
Поменять местами текущий слайд и предыдущий | |
Поменять местами текущий слайд и следующий | |
Переместить текущий слайд, поставив его последним в фильме | |
Выдать справочную информацию о количестве и именах слайдов |
Меню «Справка»
Руководство по формату CHD | |
Инструкция пользования утилитой chdView | |
Включить/отключить всплывающие подсказки на кнопках меню | |
Домашняя страница разработчика в Internet | |
Кратко о программе |