русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Построение графиков функций


Дата добавления: 2015-07-09; просмотров: 644; Нарушение авторских прав


 

Если требуется провести прямую, получайте ее только по двум точкам.

Из законов Мэрфи

 

Одно из наиболее интересных применений графических средств Delphi – построение графиков функций. Давайте нарисуем на экране синусоиду, которую мы вычисляли на прошлой лабораторной работе. Форма должна иметь вид, показанный на рис. 4.

 

 

Рис. 4 – Форма программы построения графика функции.

 

Сама программа расчета не отличается от той, что мы делали в прошлый раз.

 

procedure TForm1.Button1Click(Sender: TObject);

 

VAR Xmin, Xmax, h, y : REAL;

cx,cy:REAL;

 

Begin

TRY

Xmin:=StrToFLoat(LabeledEdit1.Text);

Xmax:=StrToFLoat(LabeledEdit2.Text);

h:=StrToFLoat(LabeledEdit3.Text)

EXCEPT

MessageDlg('Неверные данные', mtError, [mbOK],0);

Exit

END;

IF Xmax<=Xmin THEN

BEGIN

MessageDlg('Xmin>Xmax!', mtError, [mbOK],0);

Exit

END;

Memo1.Lines.Clear;

WITH Image1.Canvas DO

BEGIN

Brush.Color:=clBlue;

FillRect(Image1.ClientRect);

// Ось Х

Pen.Color:=clWhite;

MoveTo(0,Image1.Height DIV 2);

LineTo(Image1.Width, Image1.Height DIV 2);

cx:=(Xmax-Xmin)/Image1.Width;

cy:=2/Image1.Height;

IF cy>cx THEN

cx:=cy;

MoveTo(0,Image1.Height DIV 2); // начало графика

WHILE Xmin<=Xmax DO

BEGIN

y:=sin(xmin);

Memo1.Lines.Add('sin('+FloatToStrF(Xmin,ffFixed,10,4)+')='+

FloatToStrF(y,ffFixed,10,4));

LineTo(TRUNC(Xmin/cx),Image1.height DIV 2 - TRUNC(y/cx));

Xmin:=Xmin+h

END

END

end;

 

Остановимся на командах построения графика. Сначала мы заливаем весь холст синим цветом и проводим посередине горизонтальную белую линию – это ось ОХ. Затем необходимо рассчитать масштабные коэффициенты по осям координат, чтобы при любых значениях Xmin, Xmax и h график уместился в окне. Для функции sin(x) очевидно, что по оси OY ее значения будут изменяться от –1 до 1, а по оси ОХ – от Xmin до Xmax. Коэффициенты по осям будут равны:



 

;

 

Из этих двух коэффициентов нужно выбрать наибольший, тогда весь график гарантированно уместится на холсте. Далее для получения экранных координат текущие значения x и sin(x) надо разделить на рассчитанный ранее максимальный коэффициент. Наконец, при построении графика его надо сместить вниз на половину высоты холста, поскольку ось ОХ проходит посередине. Обратите внимание на использование функции TRUNC для получения целочисленных значений координат.

 

 

Рис. 5 – Результат работы программы.



<== предыдущая лекция | следующая лекция ==>
Простейшие построения | Построение геометрических фигур


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 6.229 сек.