Среда программирования:
PascalABC.NET
Статья по теме:
Запуск кода:
Для того чтобы запустить код нужно открыть приложение PascalABC.NET. Далее нужно скопировать код в рабочую зону и нажать на кнопку "Выполнить". После чего произойдет компиляция кода и с помощью модуля GraphABC появится окно в котором уже и будет построен фрактал.
Код программы:
Program Selim; uses GraphABC; //модуль для рисования в PascalABC.Net procedure RLine(A, B, A1, B1: real) := Line(Round(A), Round(B), Round(A1), Round(B1)); //Проводим отрезок от точки с координатами (A, B) до точки с координатами (A1, B1) function GetAngle(A, B, A2, B2: real): real; begin var Ang := Abs(RadToDeg(ArcTan((B2 - B) / (A2 - A)))); if (A2 = A) and (B2 = B) then Result := 0 else if A2 > A then if B2 > B then Result := Ang else Result := 360 - Ang else if B2 > B then Result := 180 - Ang else Result := 180 + Ang; end; function Distance(A, B, A1, B1: real) := Sqrt(Sqr(A1 - A) + Sqr(B1 - B)); procedure Draw(A, B, A1, B1: real); begin var C := Distance(A, B, A1, B1); if C < 10 then RLine(A, B, A1, B1) else begin var Ang := GetAngle(A, B, A1, B1); var AngQ := DegToRad(Ang + 90); var AngW := DegToRad(Ang - 90); C /= 4; var dx := (A1 - A) / 4; var dy := (B1 - B) / 4; var xA := A + dx; var yA := B + dy; var xB := xA + dx; var yB := yA + dy; var xC := xB + dx; var yC := yB + dy; var x2 := xA + C * Cos(AngQ); var y2 := yA + C * Sin(AngQ); var x3 := xB + C * Cos(AngQ); var y3 := yB + C * Sin(AngQ); var x4 := xB + C * Cos(AngW); var y4 := yB + C * Sin(AngW); var x5 := xC + C * Cos(AngW); var y5 := yC + C * Sin(AngW); Draw(A, B, xA, yA); Draw(xA, yA, x2, y2); Draw(x2, y2, x3, y3); Draw(x3, y3, xB, yB); Draw(xB, yB, x4, y4); Draw(x4, y4, x5, y5); Draw(x5, y5, xC, yC); Draw(xC, yC, A1, B1); end; end; begin Draw(100, 200, 400, 200); end.
Прикрепленный файл | Размер |
---|---|
Selim_examples_frac_27.zip | 689 байтов |