Программирование графических приложений- отдельная, большая тема, подробное изложение которой выходит за рамки поставленной нами задачи - ознакомления читателя с основами изучаемого языка. И тем не менее, на наш взгляд, описание возможностей любого языка программирования без хотя бы одного примера работы с графикой, пусть и самой простой, было бы неудовлетворительно.
Для языка С существует много специальных графических библиотек функций, работающих с графикой. Для примера воспользуемся функциями, разработанными фирмой Borland для своего языка С/С++ версии 3.1. Приведем вариант программы, строящей на экране график функции
Y=X*sin(X) в интервале от Х=0 до Х=10:
#include <graphics.h> // включить описание графических функций С/С++ Borland'a
#include <conio.h> // описание функций ввода-вывода с консоли (для getch())
#include <math.h> // описание математических функций (для sin)
int main(void)
{
float x, y;
/* Автоматическое определение графических параметров */
int gdriver = DETECT, gmode;
initgraph(&gdriver, &gmode, ""); // Инициализация графического режима
setbkcolor(1);
// делаем синий цвет фона, на котором...
line(50,0,50,480); line(50,200,640,200); // ...рисуем координатные оси
moveto(50,200);
// и переходим в начало координат,...
x=0;
do
{
y=x*sin(x);
lineto(50+x*50, 100+(100-(y*20))); // ..откуда рисуем график
x=x+0.02;
} while(x<10);
getch();
// ожидание нажатия пользователем любой клавиши
closegraph(); // выход из графического режима
return 0;
}
Приведем некоторые пояснения к рассмотренной программе.
В нашей программе используются обращения к графическим функциям
(initgraph, setbkcolor, и др.), входящим в графическую библиотеку Borland'a и описанным во включаемом файле
"graphics.h".
Процедура initgraph(&gdriver, &gmode, "") переводит дисплей в графический режим (для этого в текущем каталоге- как в нашем примере, или по указанному в кавычках пути должен существовать файл графического драйвера - обычно "egavga.bgi").
В графическом режиме экран рассматривают состоящим из пикселов (англ. pixel) - графических элементов, точек, размер которых и количество зависит от характеристик выбранного режима (В нашем случае это должен быть режим 640 на 480 пиксел EGA).
Ряды пиксел нумеруются сверху вниз. Это учтено в нашей программе при построении графика с помощью функции
lineto, которая рисует линию от текущей точки до точки с координатами, указанными как ее аргументы.Функция
line(x1,y1, x2,y2) рисует линию от точки (x1,y1) до точки с координатами
(x2,y2).
Отметим оформление основной функции: компилятор Borland'a "любит", чтобы она была, по крайней мере int
main(void), и соответственно, что-нибудь возвращала, например
return 0;.
то же на Fortran то же на Basic то же на Pascal
аналог на JavaScript