Основы программирования на C++, PASCAL
Xgmin = 10; Xgmax = 200;
Ygmin = 140; Xgmax = 40.
График строится в виде последовательности точек с математическими координатами
Xi = Хmin + i • h; Yi = sin (Xi); i = 0, ...,190.
Шаг h выбирается минимально возможным, соответствующим шагу графической сетки:
Приведенные выше формулы перевода математических координат в графические примут вид:
Вместе с графиком функции строятся оси координат. Ось Х имеет координату Yg= 90, ось Y — координату Xg = 10.
Uses Graph;
Var Driver,Mode: Integer;
X: Real; Xg,Yg,I: Integer;
Begin
{Инициализация графического режима)
Driver:=Detect;
InitGraph(Driver,Mode,'C:\TP\BGI');
SetColor(White);{белый цвет линий)
SetBkColor(Black);{черный цвет фона)
Line(10,90,200,90);{ось Х)
Line(10,20,10,160);{ось Y)
{Построение графика функции желтыми точками)
Х:=0;
For I:=0 То 190 Do
Begin Xg:=10+Round(95/Pi*X);
Yg:=90-Round(50*Sin(X));
PutPixel(Xg,Yg,Yellow);
X:=X+Pi/95
End;
{Разметка осей, запись функции)
OutTextXY(15,30,'Y');
OutTextXY(205,90,'X');
OutTextXY(130,40,'Y=SIN(X)');
ReadLn;(задержка)
CloseGraph; {выход из графики)
End.
Упражнения
1. Составить программу «Звездное небо»: в черном окне случайным образом появляются белые точки. Работа программы заканчивается по нажатию клавиши.
2. Изменить программу «Звездное небо» так, чтобы наряду с зажиганием новых звезд происходило угасание (закрашивание цветом фона) уже светящихся звезд.
3. В программу «Робот» внести такие изменения, в результате которых робот окажется раскрашенным в разные цвета.
4. Используя линии и другие графические примитивы, составить программу, рисующую дом.
5. Составить программу рисования на экране шахматного поля.
6. Написать универсальную процедуру построения графика функции у = F(x) точечным методом. Процедура должна иметь следующие Параметры: Xmin, Xmax, Ymin, Ymax, Xgmin, Xgmax, Ygmin, Ygmax. Функция F(x) описывается во внешней подпрограмме-функции.
7. Исследовав область определения и выбрав расположение координатных осей, построить на экране графики функций:
используя процедуру из предыдущей задачи.