![]() |
Матрица статей Список статей Всячина Контакты | ||||||||||||
|
Сжимающие отображения Определение и основная теорема Определение.
Отображение
Константа
Преобразования вида
Точка Теорема.
Пусть Доказательство.
Покажем, что последовательность Паутинные диаграммы
Пусть
Ниже приведена программа на языке Pascal (компилятор Free Pascal Compiler) с использованием OpenGL, строящая паутинные диаграммы.
program WebDiag;
uses
gl, glut;
function f(x : Double) : Double;
begin
f := cos(x) - 0.15 * (x + 1);
end;
procedure Draw; cdecl;
const
dx = 0.05;
Iter = 200;
x0 = 0.9;
var
x, x1, x2 : Double;
i : Cardinal;
begin
glClearColor(0.0, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
{Рисуем основной прямоугольник}
glBegin(GL_LINE_LOOP);
glVertex2f(0.0, 0.0);
glVertex2f(0.0, 1.0);
glVertex2f(1.0, 1.0);
glVertex2f(1.0, 0.0);
glEnd;
{Рисуем диагональ}
glBegin(GL_LINES);
glVertex2f(0.0, 0.0);
glVertex2f(1.0, 1.0);
glEnd;
{Рисуем график функции}
glBegin(GL_LINE_STRIP);
x := 0.0;
while x <= 1.0 + 0.5*dx do
begin
glVertex2f(x, f(x));
glVertex2f(x, f(x));
x := x + dx
end;
glEnd;
{Рисуем паутину}
x1 := x0;
for i := 1 to Iter do
begin
x2 := f(x1);
glBegin(GL_LINES);
glVertex2f(x1, x1);
glVertex2f(x1, x2);
glVertex2f(x1, x2);
glVertex2f(x2, x2);
glEnd;
x1 := x2;
end;
glFlush();
glutSwapBuffers();
end;
var
Rel : glFloat;
begin
glutInit(@argc, argv);
glutInitWindowPosition(0, 0);
glutInitWindowSize(640, 640);
glutInitDisplayMode(GLUT_RGB or GLUT_DOUBLE);
glutCreateWindow('Паутинные диаграммы');
glutDisplayFunc(@Draw);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
glTranslatef(-0.9, -0.9, 0.0);
glScalef(1.8, 1.8, 0.0);
glutMainLoop()
end.
Смотрите также: |