Графический вывод

Автор работы: Пользователь скрыл имя, 13 Января 2013 в 12:29, лабораторная работа

Краткое описание

Порядок выполнения работы:
1. Выполнить примеры
2. Изучить свойства и события используемых компонентов.
3. Оформить отчет о проделанной работе. В отчет включить рисунки главной формы редактора, фрагменты написанных кодов с комментариями, примеры работы программы, описания основных свойств и событий используемых компонентов.
Программно можно отображать на экране монитора сложные кривые, например, в виде графика функций. Рассмотрим пример такой программы.
Создайте новое приложение с именем Function и поместите на его форму:
• пять компонентов кнопок Button;
• компонент Image.

Вложенные файлы: 1 файл

C++ лаб 14.doc

— 75.50 Кб (Скачать файл)

Лабораторная работа № 14

Графический вывод

Порядок выполнения работы:

1. Выполнить примеры

2. Изучить свойства и события используемых компонентов.

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

Программно можно отображать на экране монитора сложные кривые, например, в виде графика функций. Рассмотрим пример такой программы.

Создайте новое приложение с именем Function и поместите на его форму:

    • пять компонентов кнопок Button;
    • компонент Image.

 

Задайте свойство Caption для кнопок от первой до пятой, присваивающие им соответственно названия: Рисовать, +, —, Очистить и Функция. Размер пятой кнопки увеличьте по горизонтали примерно в два раза. Компонент Image растяните и разместите на оставшейся части формы. Свойство Caption формы заполните названием Function. Разместите все компоненты на форме в соответствии с рисунком.

Окно формы программы Function

Теперь сохраните модуль проекта  в файле с названием Ufunction.cpp, а сам проект в файле с названием Function.bpr. Вставьте в файл описаний Ufunction.h после строки public: // user declarations следующие программные строки:

int n;        // Номер функции

float m;    // Масштаб

описывающие переменные номера функций  и масштаба.

После оператора #include "Ufunction.h" в файле Ufunction.cpp впишите строку:

#include <math.h>

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

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

 

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Image1->Canvas->FillRect(Rect(0,0,Image1->Width,Image1->Height));

}

Программная строка обработчика содержит метод FillRect.

Для обработчика события OnClick кнопки рисования введем строки программного кода:

#define  PI  3.14159

float X,Y;   // Переменные  функции

int PX, PY;   //  Координаты  пикселов

Form1->Button4Click(0);

Image1->Canvas->MoveTo(0,Image1->Height/2);

for(PX=0;   PX<=Image1->Width;PX++)

{

X=PX*4*PI/Image1->Width;

switch(n) // Вычисление функций

{

case 1: Y=m*sin(X); break;

case 2: Y=m*X*sin(X*X); break;

case 3: Y=m*cos(X)*sin(X); break;

default: break;

}

PY=Image1->Height-(Y+1)*Image1->Height/2;

Image1->Canvas->LineTo(PX,PY);

}

Первая  из этих строк описывает константу PI, принимающую значение числа Пифагора. Далее следует описание переменных X, Y, РХ И PY, служащих переменными функции и координатами точек рисунка. После этого следует вызов функции обработчика события OnClik кнопки очистки экрана, созданной нами ранее и предназначенной для очистки канвы компонента Image (то есть рисунка на экране). Далее вписана строка установки пера для рисования в левую среднюю точку экрана. После этой строки в программе присутствует оператор для организации цикла вычисления значения переменной Y для множества значений точек РХ экрана от 0 до максимальной величины ширины экрана в пикселах. Переменная X вычисляется в самом цикле. Одновременно масштабируется ее размер по вертикали экрана.

Оператор switch служит для сравнения номера выбранной функции и вычисления для нее значения переменной Y.

Функции могут быть произвольными. В дальнейшем при необходимости  можно будет изменять и расширять  список этих функций. Далее в программе  вычисляется значение координат  РУ и рисуется фрагмент линии функции.

В обработчик события OnClick кнопки + (плюс) вставьте строки удвоения коэффициента функции и вызова обработчика перерисовки графика функции, который принадлежит кнопке рисования Button1:

m=m*2;

Form1->Button1Click(0) ;

В обработчик события OnClick кнопки — (минус) вставьте строки уменьшения вдвое коэффициента функции и тот же обработчик перерисовки графика функции:

m=m/2;

Form1->Button1Click(0) ;

Наконец, для кнопки выбора функции Button5 впишите обработчик события OnClick, состоящий из следующих строк:

 

 

n++;

if (n>3) n=1;

switch(n)   // Выбор функций

{

case 1: Button5->Caption="Y=m*sin(X)"; break;

case 2: Button5->Caption="Y=m*X*sin(X*X)";  break;

case 3: Button5->Caption="Y=m*cos(X)*sin(X)";  break;

default:  break;

}

Здесь будет происходить автоматический инкремент номера функции и присвоение ему начального значения при превышении максимального значения n>3. В зависимости от номера функции свойство Caption кнопки Button5 будет менять свое значение на строку с записью самой математической функции.

Для завершения программы необходимо задать начальные значения для переменных масштаба и номера функции. Это делается записью программных строк инициализации  переменных m и n в теле функции формирования формы. Здесь же необходимо вписать вызов обработчика события OnClick для кнопки очистки экрана. В конечном виде функция формирования формы должна иметь запись:

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)

{

m=0.05;   n=1;

Form1->Button4Click(0) ;

}

Теперь запустите приложение и  проверьте его работу. Результат работы программы при выводе на экран функции Y=m*x*sin(x*x) представлен на рисунке:

 

Результат работы программы

 

В этой программе мы использовали не только методы, но и некоторые  функции, например sin(X) и cos(x). Среда разработки Borland C++Builder 6 имеет огромное количество встроенных библиотек с готовыми к применению функциями, что позволяет писать мощные и элегантные программы. Для знакомства с функциями можно прибегнуть к встроенной справочной системе среды разработки, вызвав ее нажатием клавиши <F1> или <Ctii>+<Fl>, когда курсор редактора находится на самой функции. Аналогично можно поступать при знакомстве с другими методами, не рассмотренными здесь.

 Кроме того, среда разработки  имеет встроенный суфлер кода, который автоматически выводит на экран список доступных методов, свойств и функций объектов при вводе символа "->", "." или "(" после записи имени объекта.

Полезной является комбинация клавиш <Ctrl>+<Space>, вызывающая список доступных  функций и методов для объекта, на котором расположен курсор редактора.

Комбинация клавиш <Ctrl>+<J> открывает  окно с перечнем функций-заготовок, которые выбираются программистом  с помощью стрелок курсора  и вставляются в программу  после нажатия клавиши <Enter>.

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

 




Информация о работе Графический вывод