Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Цель работы- Получить начальные навыки написания программ на языке программирования C работающих в граф

Работа добавлена на сайт samzan.net:


Практическая работа №22. Построение графика функции

1. Цель работы:

Получить начальные навыки написания программ на языке программирования C++, работающих в графическом режиме.

2. Темы для предварительной проработки

  •  Инструкции управления  языка C++.
  •  Объявление и инициализация переменных.
  •  Функции стандартного ввода-вывода.

3. Теоретический материал

Графический режим дисплея предназначен для вывода графиков, рисунков и т.п. В этом режиме можно выводить также и текстовую информацию.

В программах на языке С++ прежде вывода на экран графической информации необходимо произвести инициализацию графического режима, а по окончании – закрытие графического режима. Графический режим определяет разрешающую способность экрана и количество цветов и должен поддерживаться видеоадаптером. Функции, использующиеся для инициализации и деинициализации графического режима, а также для вывода информации на экран в графическом режиме, содержатся в заголовочном файле graphics.h.

Инициализация графического режима

Для этого используется функция initgraph, имеющая следующий синтаксис:

void far initgraph(int far *graphdriver, int far *graphmode, char far *pathtodriver)

Функция initgraph инициализирует графическую систему путем загрузки графического драйвера с диска и переводит систему в графический режим.

Параметры функции:

   *pathodriver – определяет маршрут, по которому initgraph будет искать графические драйверы (если строка пуста, то поиск осуществляется в текущем каталоге);

   *graphdriver – целое, которое определяет используемый графический драйвер;

   *graphmode – целое, которое определяет исходный графический режим (если *graphdriver не равен DETECT, *graphmode устанавливается в наивысшее разрешение, допустимое для данного драйвера).

Возвращаемое initgraph значение представляет собой код ошибки, который необходимо проанализировать, прежде чем приступать к работе в графическом режиме. В случае успешного завершения код равен 0.

Закрытие графического режима

Закрытие графического режима осуществляется при помощи функции closegraph, имеющей следующий синтаксис:

void far closegraph(void).

Функция closegraph освобождает всю память, выделенную под графическую систему, затем восстанавливает экран в режим, который был до вызова initgraph.

П р и м е р  Программа, инициализирующая и деинициализирующая графический режим (в программе используется автоопределение режима):

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{ int graphdriver = DETECT, mode, errorcode;

initgraph(&graphdriver,&gmode,"");

errorcode = graphresult();          // получение результата инициализации

if(errorcode != grOk)                  // если ошибка */

{ printf("Ошибка :%s\n",grapherrormessage(errorcode));

printf("Для останова нажмите любую клавишу\n");

getch();

return(1);        // завершение с кодом ошибки

}

line(0,0,getmaxx(),getmaxy()); – построение диагональной линии

getch();

closegraph();

return 0; }

Основные функции работы с графикой

bar

void bar (int xl, int yl, int x2, int y2) ;

Вычерчивает закрашенный прямоугольник. Параметры xl и yl задают положение левого верхнего угла прямоугольника, х2 и у2 — правого нижнего.

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

ellipse

void ellipse(int x, int y, int УголНачала, int УголКонца, int РадиусХ,  int РадиусУ ) ;

Вычерчивает эллипс или дугу эллипса с центром в точке с координатами (х, у). Параметры УголНачала и УголКонца задают круговые координаты начальной и конечной точек линии эллипса, которая вычерчивается против часовой стрелки от начальной точки к конечной. Угловые координаты задаются в градусах. Значение угловой координаты возрастает против часовой стрелки. Параметры РадиусХ и РадиусУ задают горизонтальный и вертикальный радиусы эллипса.

getmaxx, getmaxy

int getmaxx(void); int getmaxy(void);

Функция getmaxx возвращает координату х крайней правой точки экрана, функция getmaxy — координату у крайней нижней точки экрана.

getx, gety

int getx(void); int gety(void) ;

Возвращает координату х (у) указателя вывода.

line

void line(int xl, int yl, int x2, int у2);

Вычерчивает линию из точки с координатами x1, y1 в точку с координатами х2, у2.

Цвет линии можно задать при помощи функции setcolor, стиль — при помощи функции setlinestyle.

outtext

void outtext(const char* Текст);

Выводит строку символов Текст от текущего положения указателя вывода и перемещает указатель вывода в точку, расположенную за последним выведенным символом.

Строка, передаваемая функции outtext, не должна содержать символов форматирования, например \n.

Цвет выводимых символов можно задать при помощи функции setcolor, шрифт — settextstyle.

outtextxy

void outtextxy(int x, int y, const char* Текст);

Устанавливает указатель вывода в точку с координатами (х, у) и выводит от нее строку Текст, при этом указатель вывода своего положения не меняет, т. е. остается в точке с координатами (х, у).

Цвет выводимых символов можно задать при помощи функции setcolor, шрифт — settextstyle.

rectangle

void rectangle (int xl, int yl,  int x2, int y'2) ;

Вычерчивает прямоугольник. Параметры x1 и y1 задают положение левого верхнего угла прямоугольника, х2 и у2 — правого нижнего.

Вид (стиль линии) контура прямоугольника можно задать при помощи функции setlinestyle, цвет — при помощи функции setcolor.

setcolor

void setcolor(int Цвет);

Задает цвет вывода текста (функции outtextxy и outtext), вычерчивания линий и фигур (функции line, circle, rectangle и др.). В качестве параметра Цвет обычно используют именованную константу.

setfillstyle

void setfillstyle(int Стиль, int Цвет);

Устанавливает стиль и цвет заливки (закрашивания), используемый функциями вывода областей (bar, bar3d, sector и др.). В качестве параметра Стиль обычно используют одну из именованных констант, список которых приведен ниже. Параметр Цвет также задается именованной константой (см. setcolor).

setlinestyle

void setlinestyle(int ТипЛинии, int Образец, int Толщина)

Устанавливает стиль вычерчиваемых контуров и линий (см. функции line, circle и др.).

Параметр ТипЛинии, в качестве которого обычно используется одна из перечисленных ниже именованных констант, определяет вид линии.

settexstyle

void settexstyle(int Шрифт, int Ориентация,  int Размер);

Устанавливает шрифт, размер и ориентацию текста, выводимого функциями outtextxy и outtext.

4. Пример

// График функции

#include <graphics.h>

#include <stdio.h>

#include <conio.h>

#include <math.h>

#define PATHTODRIVER "c:\\TC\\bgi\\"

// функции, график которых надо построить

grafik(){float i,x,y;

line(1,240,600,240);

line(300,1,300,480);

for(i=-6.28;i<=6.28;i=i+0.01){x=i; y=x*x;      

//масштабирование

x=x*50; y=y*50;

putpixel (300+x, 240-y, 5) ;  }}

void main(void){

int gdriver = DETECT; // драйвер

int gmode; // режим

int errorcode;       // код ошибки

initgraph(&gdriver, &gmode, PATHTODRIVER) ;

errorcode = graphresult ();

if (errorcode == grOk) {grafik(); getch();closegraph () ; }

else {printf("Ошибка: %d\n", errorcode);

puts("Для завершения программы нажмите <Enter>");

getch();}}

5. Задание

Разработать программу построения графика функции:

F(x) = sin (1/x) +2.

Границы исследуемого участка функции (min x и max x), масштаб по осям ОХ и OY задаются пользователем с клавиатуры.

Предусмотреть вывод координатных осей на экран и их разметку в соответствии с заданными масштабом и границами.

PAGE  3




1. либочто все касающееся тебякасается одинаково и МеняИбо касающееся тебякасается зеницы Моего ока
2. Учет и анализ основных средств предприятия
3. 11 Задачи внеклассной работы по физическому воспитанию
4. ОХМАТДИТ Киев Украина Практическая деятельность врача направлена на раннюю диагностику своевремен
5. работы за исключением аварийных ситуаций до начала выполнения которых необходимо осуществить ряд обязат
6. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ для выполнения курсовой работы по дисциплине Управление персоналом для на.html
7. Состояние онкоурологической помощи больным в России, 1997 г
8. Реферат на тему- ldquo;Природні джерела вуглеводнівrdquo; Виконала- Дідич Т
9. сульфит агар Паратиф А Сальмонеллез Готова
10. Проблемы требующие философского осмысления в современном мире
11. Игры в изучении экономики
12. Thumb-ориентированное ядро ARM7TDMI и его развитие
13. Реферат- Кондиломы
14. Тема- Управление оборотными средствами предприятия Выполнил- С
15. Замечательные кривые
16. на тему- Изучение мнения учащихся о деятельности СНО ВШНИ Научноисследовательский и творческий союз студе
17. на тему- ldquo;Комп~ютерна вірусологія- криміналістична класифікаціяrdquo; Створення та обробка інформації.html
18.  Российская Федерация ~ светское государство
19. культура. Її сутність та структура
20. QUEEN Тредлифтинг Новейшая методика омоложения и трехмерного моделирования контуров лица которая возвращ