15.4. Функції й процедури класів
void WIND::scale(double Xmin,double Ymin, double Xmax,double Ymax);
Відкриває вікно у якому Xmin,Ymin є координати лівої нижньої точки вікна, а Xmax,Ymax є координати правої верхньої точки вікна.
void WIND::setpos(int a1, int b1, int a2, int b2);
Відкриває вікно із заданим положенням, a1,b1 - координати лівої нижньої точки, a2,b2 - координати правої верхньої точки вікна в абсолютній системі координат екрана. При цьому вважається, що сам екран має такі абсолютні координати: ліва верхня точка - 0,0 , права нижня точка - 639,479. Вісь Y направлена зверху вниз.
void WIND::setup(double Ms, float Ar);
Відкриває вікно із заданим розміром і співвідношенням сторін: Ms - відносний розмір, Ar - відношення висоти вікна до ширини; добуток Ms*Ar не повинне бути більше, ніж 0.75.
void FRAM::setup(int colstr, int colgrid, int stylgrid);
Встановлює параметри малювання координатної сітки: colstr - колір підпису осі координат, colgrid - колір координатної сітки, stylgrid - тип лінії координатної сітки.
void FRAM::draw(char* Sx, char* Sy);
Ініціалізує графічне вікно й малює координатну сітку; параметри-рядки Sx, Sy передають інформацію для визначення масштабу відносного вікна й нанесення оцифровки координатної сітки (див. приклади).
void POINT::setup(int cl, int cf, int st, double dm);
Встановлює параметри малювання точок при виведенні графіка, cl - колір лінії фігури точки, cf - колір заповнення фігури точки, st - параметр, що визначає форму точки, dm - відносний діаметр точки.
void POINT::draw(double x, double y);
Виводить точку графіка із координатами x,y. Атрибути малювання точки встановлюються за допомогою функції point.setup.
void CURV::setup(int res, int col, int stl, int th);
Встановлює параметри малювання лінії графіка, res - ціле число, що визначає кількість прямолінійних відрізків, з яких будується графік, col - колір лінії графіка, stl - тип лінії графіка, th - товщина лінії графіка.
void CURV::line(int N, double * x, double * y);
Малює ламану лінію з прямих відрізків для яких координати кінцевих точок задані в масивах x[N], y[N]. Ця функція застосовується для побудови графіка функції y(x), яку надано у табличній формі. Побудований на екрані графік відповідає лінійній інтерполяції даних.
void CURV::spline(int N, double * x, double * y);
З’єднує точки, координати яких задані в масивах x[N], y[N] плавною лінією, використовуючи інтерполяцію сплайнами.
void CURV::fx(double a, double b, FUNX f);
Малює графік для функції f(x), параметри a,b визначають інтервал значень х.
void CURV::fx(FUNX f);
Малює графік для функції f(x). Інтервал значень х визначається обраним масштабом графічного вікна.
void CURV::proxyt(double a, double b, PROXYT p);
Малює графік для функції, заданої параметрично за допомогою процедури p(x,y,t), параметри a,b визначають інтервал значень t.
15.5. Функції графічного виведення
void ropen();
Ініціалізація графічного режиму. Встановлюється графічне вікно з параметрами по умовчанню. Координати точки, що відповідає лівому нижньому куту вікна, дорівнюють x = -4, y = -3 , а координати правого верхнього кута мають координати x = 4, y = 3. За допомогою функції wind.scale можна встановити будь-які іншу систему координат і масштаб.
void rclose();
Виконується перехід із графічного режиму виведення на екран в текстовий.
void rclear();
Очищення поточного графічного вікна.
int pix(double xr);
Перетворення значення відносної x-координати точки в значення її абсолютної координати.
int piy(double yr);
Перетворення значення відносної y-координати точки в значення її абсолютної координати.
void rmoveto(double x, double y);
Аналог функції moveto зі стандартної бібліотеки. Встановлює курсор графічного вікна в положення, що відповідає координатам x,y.
void rputpixel(double x, double y, int col);
Аналог функції putpixel зі стандартної бібліотеки. Малює на екрані точку з координатами x,y, використовуючи при цьому колір малювання col.
void rlineto(double x, double y);
Аналог функції lineto зі стандартної бібліотеки. Малює відрізок прямої лінії починаючи з поточної точки графічного вікна й до точки з координатами x,y.
void rline(double x1, double y1, double x2, double y2);
Аналог функції line зі стандартної бібліотеки. Малює відрізок прямої лінії починаючи із точки з координатами x1,y1 і до точки з координатами x2,y2..
void rball(double x, double y, float R);
Аналог функції circle зі стандартної бібліотеки. Малює коло із центром у точці з координатами x,y і з радіусом R.
void rbox(double x1, double y1, double x2, double y2);
Аналог функції rectangle зі стандартної бібліотеки. Малює прямокутник, x1,y1 - координати лівого нижнього кута, x2,y2 - координати правого верхнього кута.
void rfloodfill(double x, double y, int clr, int brd);
Аналог функції floodfill. Виконує заливання фігури кольором clr до границі з кольором brd починаючи із точки з координатами x,y.
void rwinbox(int col=15, int th=1);
Малює прямокутну рамку для поточного графічного вікна із зазначеними кольором й товщиною лінії. Якщо ця функція викликається без фактичних параметрів, то, за умовчанням, використовуються значення col=15, th=1.
void rwinbk(int colbk);
Створює фон поточного вікна, зафарбовуючи його кольором colbk.
void rfillball(double x, double y, double R, int col);
Малює зафарбоване коло, x,y - координати центру, R - радіус, col - колір зафарбовування.
15.6. Приклади програм з графічним виведенням
Давайте подивимося, що необхідно записати в програмі, щоб відкрити графічне вікно з параметрами по умовчанню і намалювати на екрані коло.
// Приклад 1
#include "rgraph.h"
void main()
{ PathBGI="D:\\bc5\\bgi";
// у системній змінній PathBGI повинен бути записаний шлях // до папки із графічними драйверами
ropen(); // ініціалізація графічного вікна
rball(0,0,1.5); // малювання кола з радіусом 1.5
pause; // пауза до натискання клавіші
rclose(); // повернення екрану у текстовий режим
}
У наведеному нижче прикладі використовуються функції управління графічним вікном і деякі функції малювання.
// Приклад 2
#include "rgraph.h"
void main()
{ ropen(); // ініціалізувати графічне вікно
double Ms=1.0, Ar=0.75; // Ms – відносний розмір графічного // вікна
for (int i=0;i<12;i++)
{ wind.setup(Ms,Ar);
// установити максимальний розмір вікна
rwinbox(12); // намалювати рамку графічного вікна
wind.scale(-1,-1,1,1);
// установити масштаб графічного вікна
rbox(-0.7,-0.7,0.7,0.7); // намалювати прямокутник
rball(0,0,0.5); // намалювати коло
rfillball(0,0,0.3,1); // намалювати круг
rfloodfill(-0.68,-0.68,15); // виконати зафарбовування
pause; // пауза до натискання клавіші
Ms* = 0.75; // установити менший розмір вікна
rclear(); // очистити вікно
}
rclose(); // перейти у текстовий режим
}
Приклад програми, що виводить на екран графік функції, яка надається як функція С++.
// Приклад 3
#include "rgraph.h"
float f(float x) // функція, графік якої необхідно
{ return sin(10*x)*exp(-x/2); // намалювати
}
Yandex.RTB R-A-252273-3- Запоріжжя знту 2008
- Глава 1
- 1.1. Історія та сучасність
- 1.2. Загальна структура програми. Два простих приклади
- Void main()
- Void main()
- Глава 2 Об’єкти та ідентифікатори
- 2.1. Об'єкти та їхні атрибути
- 2.2. Алфавіт мови та лексеми
- 2.3. Ідентифікатори
- Void main() // (рівень 0)
- 2.4. Вправи
- Глава 3
- 3.1. Поняття виразу. Вирази Lvalue та Rvalue
- 3.2. Операції. Пріоритети та асоціативність
- Void main()
- Void main()
- Void main()
- 3.3. Вправи
- Глава 4
- 4.1. Види операторів
- 4.2. Стандартні оператори
- If (лв) опер_1; [ else опер_2; ]
- Void main()
- If (лв1) опер_1;
- Void main()
- Void main()
- Void main()
- Void main()
- Void main()
- 4.3. Оголошення змінних та ініціалізація
- Int number(125);
- Int number(125);
- 4.4. Константи і константні об'єкти
- Void main()
- 4.5. Вправи
- Глава 5
- 5.1. Типи та їхні різновиди
- 5.2. Службове слово void
- Int a[small], a[large];
- 5.4. Перетворення типів
- 5.5. Вправи
- Void main()
- Глава 6 покажчики і посилання
- 6.1. Покажчики
- Void main()
- Void strcpy(char* s1, char* s2)
- Void* pv;
- 6.2. Посилання
- 6.3 Вправи
- Void main()
- Глава 7 масиви і динамічні об'єкти
- 7.1. Масиви
- Void main()
- 7.2. Рядки символів
- Int strlen(char* s);
- Int strcmp(char* s1, char* s2);
- Int len(char *s)
- 7.3. Динамічні об'єкти й масиви
- Void main()
- Void main()
- Void main()
- Void main()
- 7.4. Вправи
- Глава 8 функції та процедури
- 8.1. Загальні відомості
- Void main()
- Void c_mul(double a_re, double a_im,
- Void swap1(long *px, long *py)
- Void swap2(long &X, long &y)
- Void main()
- Int fun(int, float*, double&);
- Void fun(int n)
- Void main()
- Void swap(int& a, int& b)
- 8.2. Функція main
- Void або int main(int n, char** p, char** q);
- Void main(int n, char** p, char** q)
- 8.3. Функції зі змінною кількістю параметрів
- Void main()
- 8.4. Покажчики на функції
- Int (*pf[3])(float X, float y);
- Void main()
- 8.5. Функції з шаблонами
- Void swap(string& s1, string& s2)
- Void main()
- Inline t abs(t X)
- Void create(type* &a, int n)
- Void del(type* &a)
- 8.6. Вправи
- Глава 9 консольне вВедення / вИведення
- 9.1. Засоби бібліотеки с
- Void main()
- Void main()
- Void main()
- 9.2. Використання потоків
- Void main()
- Void main()
- 9.3. Вправи
- Глава 10 операції з файлами
- 10.1. Види файлів і режими роботи з ними
- 10.2. Бібліотека с
- Void fprint(file* f, &X)
- Void rewind(file* f);
- Void main()
- Void main(int n, char** f)
- Void main(int n, char** fnam)
- 10.3. Застосування потоків
- Ifstream fin;
- Void open(char* filename, int mode, int access);
- Ifstream fin("a.Dat");
- Void main()
- Ifstream fa("a.Dat");
- If (fa.Eof()) break;
- Void main(int n, char** fnam)
- Void main(int n, char** f)
- Ifstream fa(f[1]);
- Void main(int n, char** fnam)
- Void main()
- Ifstream in("example.Cpp");
- Void main()
- Ifstream in("name.Dat",ios::binary);
- Void main()
- Ifstream fa("a.Dat");
- Int descr(fstr& f)
- Void main()
- Ifstream ina(infa);
- Ifstream inb(infb);
- 10.4. Вправи
- Глава 11 компіляція програми. Директиви і макроси
- 11.1. Фази компіляції
- 11.2. Директиви режиму компіляції
- 11.3. Директиви препроцесора
- 11.4. Вправи
- Глава 12 змішане програмування. Використання ассемблерного коду
- 12.1. Засоби використання асемблера
- Void main()
- 12.2. Вправи
- Глава 13 програмна реалізація алгоритмів
- 13.1. Алгоритм Евкліда пошуку найбільшого загального дільника двох цілих чисел
- 13.2. Обчислення факторіала
- 13.3. Пошук простих чисел. Решето Ератосфена
- Void main()
- 13.4. Генерація підмножин
- Void main()
- 13.5. Сортування масивів
- Void main()
- Void main()
- Int flag;
- 13.6. Пошук у масиві
- Void main()
- Void main()
- 13.7. Операції з матрицями
- Void ObrMatr (double** a, double** b, unsigned n )
- Void Minv(double** a, double** b, unsigned n )
- Void Gauss(double** a, double* b, double* X, unsigned n)
- 13.8. Лінійна інтерполяція даних
- 13.9. Лінійна апроксимація
- Void linappr(int n, double* X, double* y, double& a0, double& a1)
- 13.10. Розв’язування нелінійних рівнянь
- Void Bisec(funx f, double a, double b, double eps, double& X)
- Void Bisec(funx f, double a, double b,
- Void main()
- 13.11. Пошук заданої послідовності символів у файлі
- Void push(char* s, int n, char X)
- Void main()
- 13.12. Вправи
- Глава 14 створення й використання бібліотечних модулів. Модуль syst.H
- 14.1. Створення бібліотечних модулів
- 14.2. Модуль syst.H
- 14.3. Системні функції та макрооперації
- Void runtimer();
- Void main()
- Void runstimer();
- Void main()
- Void swp(Type& a, Type& b);
- Void main()
- Int cmp(int nx, int ny, Type* X, Type* y);
- Void errhalt(bool ex, char* mes);
- Void errhalt(bool ex, char* mes, file* f);
- 14.4. Операції введення/виведення
- Void flushkey();
- Void main()
- Int getyes();
- Void main()
- Void main()
- Int weight(type X);
- Void main()
- Int hamdist(Type a, Type b)
- 14.6. Спеціальні класи. Клас Spline для інтерполяції даних сплайнами
- Void main()
- 14.7. Вправи
- Глава 15 графІчне виведення. Модуль rgraph.H
- 15.1. Модуль rgraph.H. Загальні відомості
- 15.2. Глобальні змінні й константи
- 15.3. Класи й покажчики на функції
- 15.4. Функції й процедури класів
- Void main()
- Void main()
- Void main()
- Void main()
- 15.7. Вправи
- Глава 16 Життєвий цикл програмного продукту. Питання стилю запису програм
- 16.1. Життєвий цикл програми
- Int n, alfa, col;
- Void draw();
- Void rotate(int delta);
- 16.3. Вправи
- Література