Читайте также:
|
|
Этап 4: нанесение координатной сетки. Если ndx - количество интервалов, на которое разбивается поле вывода по оси абсцисс, а ndy – по оси ординат, то разность значений аргумента (функции), соответствующая этому интервалу определяется формулами:
dx = (Xmax - Xmin) / ndx
dy = (Ymax - Ymin) / ndy.
Те же значения, выраженные в экранных координатах:
lx = round((Xk - Xn)/ndx)
ly = round((Yk - Yn)/ndy).
С учетом вычисленных значений нарисовать линии координатной сетки.
Этап 5: нанесение соответствующих числовых значений аргумента и функции (оцифровка осей). Для вывода надписей нужно перейти от действительной формы представления значений аргумента и функции к их строковому представлению. Для этого можно использовать стандартную процедуру
Str(value:n:m; Var s:string).
Следует учесть, что символ занимает (по умолчанию) прямоугольник размером 8х8 пикселей.
Тогда, если под запись числа отводится n позиций, m из которых под дробную часть, то начальная позиция вывода значений функции определяется из выражения:
Xn – n*8 – 15.
Начальная позиция вывода значений аргумента определяется выражением:
Xn + lx*(i-1) – (n-m)*8 + 4.
Задание №3 – на 4 лабораторной работы.
Нарисовать в одном поле вывода графики двух функций (выбирать из предложенного списка с помощью компонента RadioGroup, List или любого другого) от одного аргумента. Рисование осуществить в двух режимах: в одном масштабе (общая для обоих графиков ордината, общая оцифровка) и в разных масштабах (независимые ординаты для графиков, две независимых оцифровки).
В любом из режимов обеспечить просмотр графиков влево и вправо от заданного диапазона аргумента с некоторым шагом его изменения. При этом должна изменяться оцифровка обеих осей. Для прокрутки графиков использовать компонент ScrollBar или любой другой. При очень больших и очень малых значениях аргумента или функции переходить в оцифровке осей к экспоненциальной форме представления числа.
При подводке указателя мыши к графику функции во всплывающем окошке (свойство Hint) высвечивать координаты указанной точки.
Создать меню следующей структуры:
Параметры
Поле вывода
Координаты левого верхнего угла поля вывода
Размеры поля вывода
Диапазон аргумента
- сетка (координатная)
Выводить
Количество вертикальных линий
Количество горизонтальных линий
Не выводить
Рисование графиков
В одном масштабе
В разных масштабах
Информация о программе и авторе
Выход
Необходимые для выполнения графической части задания сведения:
Основные понятия
Приложение может выводить графику на поверхность объекта – формы или компонента. Существует компонент для вывода готовых изображений (рисунков или фотографий) из графических файлов (компонент Image). Изображения, формируемые приложением, можно выводить на поверхность формы или компонентов Image и PaintBox.
Поверхности объекта соответствует свойство Canvas. В свою очередь, свойство Canvas (канва, холст) – это объект класса TСanvas. Методы этого типа обеспечивают вывод графических примитивов (точек, линий, окружностей, прямоугольников и т.д.), а свойства позволяют задать характеристики выводимых графических примитивов (цвет, толщину и стиль линий; цвет и вид заполнения областей; характеристики шрифта при выводе текстовой информации).
Канва состоит из отдельных точек – пикселей - и имеет свойство Pixels, которое содержит информацию о цвете каждой точки графической поверхности и представляет собой матрицу класса TColor. Положение пикселя характеризуется его горизонтальной (x) и вертикальной (y) координатами. Система координат канвыимеет началом левый верхний угол компонента или формы (координата x возрастает при перемещении слева направо, а координата y - при перемещении сверху вниз). Значения координат правой нижней точки поверхности вывода зависят от размера холста (рис.1). Его размер можно установить с помощью «Инспектора объектов» или программно, обратившись к свойствам Height и Width компонентов или к свойствам формы: ClientHeight и ClientWidth.
Примечание: клиентская область формы на 8 пикселей по ширине и 32 пикселя по высоте меньше размеров самой формы.
Важнейшее свойство пикселя - его цвет (Color). Для описания цвета используется класс TColor. Свойство Color используется практически каждым компонентом. В Turbo Delphi определено множество констант типа TСolor. Одни из них непосредственно определяют цвета (например, clGreen - зеленый), другие определяют цвета элементов окон, которые могут меняться в зависимости от выбранной пользователем палитры цветов Windows (например, clBtnFace - цвет поверхности кнопок).
|
|
|
|
|
|
|
Рис.1. Координаты точек холста (канвы)
В таблице 1 приведены именованные константы, которые можно использовать в качестве значения свойства Color:
Таблица 1
Константа | Цвет | Константа | Цвет |
clBlack | Черный | clSilver | Серебристый |
сlMaroon | Каштановый | clRed | Красный |
clGreen | Зеленый | clLime | Салатный |
clOlive | Оливковый | clBlue | Синий |
clNavy | Темно-синий | clFuchsia | Ярко-розовый |
сlPurple | Розовый | clAqua | Бирюзовый |
clTeal | Зелено-голубой | clWhite | Белый |
clGray | Серый |
Дата добавления: 2015-04-20; просмотров: 27 | Поможем написать вашу работу | Нарушение авторских прав |