Файл: Вариант 6 Цель работы Научиться составлять алгоритмы решения графических задач. Научиться составлять алгоритмы и программы в соответствии с этими алгоритмами..docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.12.2023
Просмотров: 69
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Вариант 6Цель работы:
Алгоритм построения множества ЖюлиаШаг 0:Выбрать параметр Выбрать число M, которое считается бесконечно большим.Положить , где - разрешающая способность экрана.Для всех пар , где и выполнить следующую процедуру:Шаг 1:Положить Шаг 2 (итерация):
Вычислить по , используя формулыУвеличить счетчик k на 1.Шаг 3 (оценка):Вычислить .Если , то выбрать цвет k и идти дальше на Шаг 4.Если , то выбрать цвет 0 (черный) и идти на Шаг 4.Если , вернуться на Шаг 2.Шаг 4:Приписать цвет k точке экрана и перейти к следующей точке, начиная с Шаг 1.program J2;uses Graph, Crt;typeTComplex = recordX : Real;Y : Real;end;constiter = 50;max = 16;x0=-0.9;xn=0.9;y0=-1.1;yn=1.0;varz, t, c : TComplex;n : Integer;Cancel : Boolean;gd, gm : Integer;msx,msy : Real;x, y :Real;xc, yc : Integer;beginCancel := false;Randomize;gd := Detect;InitGraph(gd,gm,'c:\bp\bgi');xc:=GetMaxX div 2;yc:=GetMaxY div 2;msx:= xc/xn;msy:= yc/yn;y:=y0;while y<=yn dobeginx:=x0;while x<=xn dobeginn := 0;z.x := x*msx * 0.005;z.y := y*msy * 0.005;c.x := 0.11;c.y := -0.66;while (sqr(z.x) + sqr(z.y) < max) and (n < iter) dobegint := z;z.x := sqr(t.x) - sqr(t.y) + c.x;z.y := 2*t.x*t.y + c.y;Inc(n);if keypressed thencancel := true;end;if n < iter thenbeginPutPixel(xc+round(x*msx),yc+round(y*msy),16 - (n mod 16));end;if cancel thenexit;x:=x+0.002;end;y:=y+0.002;end;Readkey;end.Задание 2Реализовать программу, строящую двумерное изображение заданной фигуры. Необходимо выполнить 2D преобразования и отобразить новое положение фигуры. В таблице 2 каждому номеру варианта (№) соответствует фигура для построения
program kontrgraf;uses crt,graph;var dr,m:integer;x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x22,x33,x44,x55,x66,x77,x88,x99,x1010:integer;y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y22,y33,y44,y55,y66,y77,y88,y99,y1010:integer;pressedkey:char;label 1;beginx1:=100; x2:=200; x3:=250; x4:=200; x5:=100;x6:=50; x7:=150; x8:=200; x9:=150; x10:=100;y1:=250; y2:=250; y3:=350; y4:=450;y5:=450; y6:=350; y7:=300; y8:=350; y9:=400; y10:=350;dr:=Detect;InitGraph(dr,m,'');SetColor(5);Line(50,50,640,50);Line(50,50,50,480);SetColor(14);Line (x1,y1,x2,y2); {1-2}Line (x2,y2,x3,y3); {2-3}Line (x3,y3,x4,y4); {3-4}Line (x4,y4,x5,y5); {4-5}Line (x5,y5,x6,y6); {5-6}Line (x6,y6,x1,y1); {6-1}Line (x7,y7,x8,y8); {7-8}Line (x8,y8,x9,y9); {8-9}Line (x9,y9,x10,y10); {9-10}Line (x10,y10,x7,y7); {10-7}outtextxy(10,2,'Dlya preobrazovania figuri najmite klavishu Enter, Esc - vihod');pressedkey:=readkey;if pressedkey=chr(27) then halt;if ord(pressedkey)=13 then goto 1;1:SetColor(20);x11:=round(cos(pi/4)*x1+sin(pi/4)*y1);y11:=round(-sin(pi/4)*x1+cos(pi/4)*y1);x22:=round(cos(pi/4)*x2+sin(pi/4)*y2);y22:=round(-sin(pi/4)*x2+cos(pi/4)*y2);x33:=round(cos(pi/4)*x3+sin(pi/4)*y3);y33:=round(-sin(pi/4)*x3+cos(pi/4)*y3);x44:=round(cos(pi/4)*x4+sin(pi/4)*y4);y44:=round(-sin(pi/4)*x4+cos(pi/4)*y4);x55:=round(cos(pi/4)*x5+sin(pi/4)*y5);y55:=round(-sin(pi/4)*x5+cos(pi/4)*y5);x66:=round(cos(pi/4)*x6+sin(pi/4)*y6);y66:=round(-sin(pi/4)*x6+cos(pi/4)*y6);x77:=round(cos(pi/4)*x7+sin(pi/4)*y7);y77:=round(-sin(pi/4)*x7+cos(pi/4)*y7);x88:=round(cos(pi/4)*x8+sin(pi/4)*y8);y88:=round(-sin(pi/4)*x8+cos(pi/4)*y8);x99:=round(cos(pi/4)*x9+sin(pi/4)*y9);y99:=round(-sin(pi/4)*x9+cos(pi/4)*y9);x1010:=round(cos(pi/4)*x10+sin(pi/4)*y10);y1010:=round(-sin(pi/4)*x10+cos(pi/4)*y10);Line (x11,y11*2,x22,y22*2); {1-2}Line (x22,y22*2,x33,y33*2); {2-3}Line (x33,y33*2,x44,y44*2); {3-4}Line (x44,y44*2,x55,y55*2); {4-5}Line (x55,y55*2,x66,y66*2); {5-6}Line (x66,y66*2,x11,y11*2); {6-1}Line (x77,y77*2,x88,y88*2); {7-8}Line (x88,y88*2,x99,y99*2); {8-9}Line (x99,y99*2,x1010,y1010*2); {9-10}Line (x1010,y1010*2,x77,y77*2); {10-7}pressedkey:=readkey;if pressedkey=chr(27) then halt;closegraph;end.ЗаключениеМною освоено:
-
Научиться составлять алгоритмы решения графических задач.
-
Научиться составлять алгоритмы и программы в соответствии с этими алгоритмами.
-
Научиться программированию на языке высокого уровня Pascal.
-
Изучить математический аппарат дисциплины «Компьютерная графика».
| Вариант | Вид фрактала | | | | |
| 6 | Джулия | –0.9 | 0.9 | –1.1 | 1.0 |
Вычислить по , используя формулыУвеличить счетчик k на 1.Шаг 3 (оценка):Вычислить .Если , то выбрать цвет k и идти дальше на Шаг 4.Если , то выбрать цвет 0 (черный) и идти на Шаг 4.Если , вернуться на Шаг 2.Шаг 4:Приписать цвет k точке экрана и перейти к следующей точке, начиная с Шаг 1.program J2;uses Graph, Crt;typeTComplex = recordX : Real;Y : Real;end;constiter = 50;max = 16;x0=-0.9;xn=0.9;y0=-1.1;yn=1.0;varz, t, c : TComplex;n : Integer;Cancel : Boolean;gd, gm : Integer;msx,msy : Real;x, y :Real;xc, yc : Integer;beginCancel := false;Randomize;gd := Detect;InitGraph(gd,gm,'c:\bp\bgi');xc:=GetMaxX div 2;yc:=GetMaxY div 2;msx:= xc/xn;msy:= yc/yn;y:=y0;while y<=yn dobeginx:=x0;while x<=xn dobeginn := 0;z.x := x*msx * 0.005;z.y := y*msy * 0.005;c.x := 0.11;c.y := -0.66;while (sqr(z.x) + sqr(z.y) < max) and (n < iter) dobegint := z;z.x := sqr(t.x) - sqr(t.y) + c.x;z.y := 2*t.x*t.y + c.y;Inc(n);if keypressed thencancel := true;end;if n < iter thenbeginPutPixel(xc+round(x*msx),yc+round(y*msy),16 - (n mod 16));end;if cancel thenexit;x:=x+0.002;end;y:=y+0.002;end;Readkey;end.Задание 2Реализовать программу, строящую двумерное изображение заданной фигуры. Необходимо выполнить 2D преобразования и отобразить новое положение фигуры. В таблице 2 каждому номеру варианта (№) соответствует фигура для построения
, и вид двумерного преобразования. Координаты вершин объектов сцены задаются самостоятельно.
| 6 | | Растяжение вдоль оси Y и поворот на 45° относительно начала координат |
-
Язык программирования Pascal. Работа с графикой в нем. -
Алгоритмизация и построение программ. -
Дисциплина «Компьютерная графика».