компьютерная графика, язык прогр. Pascal. Отчет. Program mandelbrot uses crt, Graph Команда подключения модулей
Скачать 13.3 Kb.
|
program mandelbrot; uses CRT, Graph; {Команда подключения модулей} const {Секция объявления констант} maxcol = 640; maxrow = 200; max_colors = 16; max_iterations = 1000; {Максимальное количество итераций} max_size =6; var {Секция объявления переменных} Q : array[0..349] of real; {Переменные вещественного типа} XMax,YMax,XMin,YMin : real; {Переменные вещественного типа} P,deltaP,deltaQ,X,Y,Xsquare,Ysquare : real; {Переменные вещественного типа} i,color,row,col,gm,gd : integer; {Переменные целого типа, где переменная gd определяет тип драйвера адаптера, переменная gm определяет режим работы адаптера, по умолчанию выбирается старший режим (с самым высоким разрешением)} ch : char; begin {Начало программы} XMax := 0.8; {Максимальная граница расчета по оси x} XMin := -2.0; {Минимальная граница расчета по оси x} YMax := 1.0; {Максимальная граница расчета по оси y} YMin :=-1.0; {Минимальная граница расчета по оси y} gd:=detect; {Тип драйвера адаптера определяется автоматически, значение gm после команды gd:=detect; определяется автоматически} InitGraph(gd,gm,'c:\TP7\BGI'); {Инициализация графики. В кавычках указывается путь к программе драйверу с расширением bgi} deltaP := (XMax - XMin)/(maxcol); deltaQ := (YMax - Ymin)/(maxrow); Q[0] := YMax; for row := 1 to maxrow do Q[row] := Q[row-1] - deltaQ; P := XMin; for col := 0 to maxcol do begin if Keypressed then exit; for row := 0 to maxrow do begin X := 0.0; Y := 0.0; Xsquare := 0.0; Ysquare := 0.0; color := 1; repeat Xsquare := X*X; Ysquare := Y*Y; Y := 2*X*Y + Q[row]; X := Xsquare - Ysquare + P; inc(color); until (color>=max_iterations) OR (Xsquare + Ysquare >= max_size); PutPixel(col,row,(color MOD max_colors)); end; P := P + deltaP; end; ch := ReadKey; end. |