#include /* #include */ #include /* файл с прототипами функций библиотеки */ #include "grec.h" double x[100], y[100], z[100]; int main(void) { int i; char bufpr[100]; /* разрешение вывода отчета о работе библиотеки */ grec_disp_flag = 1; /* открываем вывод в файл test1.PS (цветной рисунок) */ open_page("test1.PS","Test PS N1"); /* выводим разным цветом несколько строк */ for (i = 1; i <=15; i++) { sprintf(bufpr,"Color %d", i); symbol(bufpr, 1, 15 * (i-1), i); } /* открываем область в которую будем выводить Sin(x) */ region(0, 90., 0., 630., 240., RF_Border, -0.1, 10.1, -1.1, 1.1); /* открываем область в которую будем выводить Cos(2*x) в виде гистограммы */ region(1, 260., 260., 630., 480., RF_Border, -0.1, 10.1, -1.1, 1.1); /* открываем область в которую будем выводить фигуру Лиссажу */ region(2, 0., 260., 240., 480., RF_Border | RF_IdRatio, -1.1, 1.1, -1.1, 1.1); /* проводим координатные оси в области 0 пользуясь автоматической разметкой */ absciss(0, 0, 0, 0, "x", 7, AF_); ordinate(0, 0, 0, 0, "Sin(x)", 7, AF_); /* проводим координатные оси в области 1 определяя параметры 'вручную' */ absciss(1, 0.0, 1.0, 2, "x", 15, AF_ChrDn); ordinate(1, 0.0, 0.5, 5, "Cos(2x+1)", 15, AF_ChrRgt); /* проводим координатные оси в области 2 без надписывания */ absciss(2, 0, 0, 0, "", 1, AF_NoBigMk); ordinate(2, 0, 0, 0, "", 1, AF_NoBigMk); /* заполняем массивы, одновременно ведя запись в область 1 */ for (i = 0; i < 100; i++) { x[i] = i / 10.0; y[i] = sin(x[i]); z[i] = cos(2.0*x[i]+1.0); line(1, x[i], 0.0, x[i], z[i], 12); mark(1, x[i], z[i], 1, 2, 12); } /* выводим синус с записью надписи в разрыв */ lineox(0, x, y, 0, 99, 15, LX_Txt, "Sin(x)"); /* выводим фигуру Лиссажу */ lineo(2, y, z, 0, 99, 10); /* закрываем страницу */ close_page(); /* открываем вывод в файл test2.ps (рисунок в оттенках серого) */ open_page("test2.ps","Test PS N2"); /* открываем область в которую будем выводить фигуру Лиссажу */ region(9, 10., 10., 630., 470., RF_IdRatio, -1.1, 1.1, -1.1, 1.1); /* проводим координатные оси в области 0 пользуясь автоматической разметкой */ absciss(9, 0, 0, 0, "", 7, AF_); ordinate(9, 0, 0, 0, "", 7, AF_); /* выводим фигуру Лиссажу */ lineo(9, y, z, 0, 99, 15); /* закрываем страницу */ close_page(); return(0); }