
- •10.3 Операторы управления
- •10. 4 Оператор мультиветвления switch
- •10.6 Применение функции printf для форматирования
- •11.1 Графические программы
- •11.2 Построение символьного графика
- •11.4 Построение графика в графическом режиме
- •12.1 Передача данных для построения графика в MathCad
- •12.4 Указатели
- •12.5 Описание указателей
- •12.6 Указатели для массивов и строк
- •13.3 Оператор динамического выделения памяти new
- •Void main ( ) {
- •Void tab( ); };
- •Void main ( ) {
- •15.1 Класс объектов, элементы класса
- •15.2 Доступ к элементам класса
- •15.3 Вызов элементов класса
- •15.4 Конструкторы классa
- •15.5 Пример класса Tkplk
- •16.1 Наследование
- •16.2 Полиморфизм
- •16.3 О перегрузке функций и операций
- •17. 1 Среда программирования и библиотека vcl
- •17.2 Консольное приложение в Builder
- •При выполнении лабораторных работ в дисплейном классе используется
- •17.5 Вид экрана в builder
- •17.6 Работа с проектом в системе Builder
- •18.1 Редактор кода
- •18.4 Пример запроса, ввода, вывода для Win -программы
11.4 Построение графика в графическом режиме
В графическом режиме резко увеличивается количество точек, т.к. работа с
пикселами позволяет использовать, например, 200 строк и 600 столбцов
вместо 20 строк и 20 столбцов символьного графика. При этом рис. 11.1 и
алгоритм построения графика почти не изменяются, но теперь каждая точка
рис.11.1 соответствует пикселу. Матрицу Mаs можно не формировать, т.к.
возможен вывод каждого отдельного пиксела в любом порядке с помощью
стандартных графических подпрограмм. Следовательно, основное отличие двух
подпрограмм построения графика заключается в выводе: в символьном графике
для его вывода необходимо формировать строку, а в графическом режиме можно
выводить любой пиксел.
Рассмотрим основные этапы графического программирования на примере для
задачи раздела 11.2. Пример программы дан в разделе 11.6.
Используется библиотека graphics.lib.
1. Составление функции main ( если необходимо, и других функций) для
вычисления двух массивов x[k], y[k], определящих координаты N точек, т.е.
k=1,2,.., N. Отметим, что значения N для графического режима могут быть
резко увеличены по сравнению со случаем символьного графика. После
формирования массивов x, y можно вызывать функцию построения
графика : gragci ( N, x, y ).
2. Подключение необходимых заголовочных файлов, в частности, файла
graphics.h
3. Установка видеорежима в соответствии с особенностями конкретного
компьютера. Для этого вызывается функция initgraph, которой передается
параметр DETECT и путь к папке с графическими драйверами. Значение
DETECT равно 0, и при этом определение типа видеоадаптера и выбор
соответствующего драйвера происходят автоматически. Установленный
режим характеризует параметр mode в initgraph.
4. Вызов в тексте подпрограмм всех необходимых графических функций,
т.е. непосредственная работа с графикой. В рассматриваемом примере вызываются
функции rectangle, setcolor, moveto, lineto, line, outtextxy.
5. Компиляция, компоновка, выполнение программы. Результатом является
график на экране.
Программа построения графика будет рассмотрена на семинаре, а также при
выполнении лабораторной работы следующего семестра.
** cpp1 ** 15.05.2004
Лекция 12 Адреса, ссылки, указатели в С++.
Передача данных для графика
12.1 Передача данных для построения графика в MathCad
Можно упростить процесс вывода графика, если использовать MathCAD.
Для этого в программе на С++ нужно сформировать массивы x, y со
значениями абсцисс и ординат N точек, записать их в файл, а затем этот
файл считать оператором READ программы MathCAD.
Приводим пример такой программы для построения графика из раздела 11.2.
// gr2.cpp // (12.1)
#include <conio.h> // for getch
#include <fstream.h>
#include <math.h>
void main (void) {
int N, k; cout << "Введите N= ";
cin >>N; cout<< endl<<" Дано N= "<<N<<endl;
ofstream mr ( "gr2.txt");
mr<<N<<endl;
float x[50], y[50];
for (k = 0; k < N; k++){
x[k] = 0.5*k; mr << x[k] << " "; }
mr<<endl;
for (k=0; k<N; k++) { y[k]=sin(k); mr<<y[k] << " "; }
cout<<endl<< " OK !! "; getch();
}
Программа для MathCAD
Рис. 12.1
Кривая имеет вид ломаной из-за малого количества точек N = 6, выбранных для уменьшения длины массивов x, y при их простейшем выводе.