Кривая Коха
Кривая Коха — фрактальная кривая, описанная в 1904 году шведским математиком Хельге фон Кохом.
Три копии кривой Коха, построенные (остриями наружу) на сторонах правильного треугольника, образуют замкнутую кривую бесконечной длины, называемую снежинкой Коха.
Построение[править | править код]
Кривая Коха является типичным геометрическим фракталом. Процесс её построения выглядит следующим образом: берём единичный отрезок, разделяем на три равные части и заменяем средний интервал равносторонним треугольником без этого сегмента. В результате образуется ломаная, состоящая из четырёх звеньев длины 1/3. На следующем шаге повторяем операцию для каждого из четырёх получившихся звеньев и т. д… Предельная кривая и есть кривая Коха.
<?php
$i = 4;
$image = imagecreatetruecolor(600, 200);
imagefilledrectangle($image, 0, 0, imagesx($image) - 1, imagesy($image) - 1,
imagecolorresolve($image, 255, 255, 255));
$color = imagecolorresolve($image, 0, 0, 0);
drawKoch($image, 0, imagesy($image) - 1, imagesx($image), imagesy($image) - 1, $i, $color);
/**
* Draws koch curve between two points.
* @return void
*/
function drawKoch($image, $xa, $ya, $xe, $ye, $i, $color) {
if($i == 0)
imageline($image, $xa, $ya, $xe, $ye, $color);
else {
// C
// / \
// A---B D---E
$xb = $xa + ($xe - $xa) * 1/3;
$yb = $ya + ($ye - $ya) * 1/3;
$xd = $xa + ($xe - $xa) * 2/3;
$yd = $ya + ($ye - $ya) * 2/3;
$cos60 = 0.5;
$sin60 = -0.866;
$xc = $xb + ($xd - $xb) * $cos60 - $sin60 * ($yd - $yb);
$yc = $yb + ($xd - $xb) * $sin60 + $cos60 * ($yd - $yb);
drawKoch($image, $xa, $ya, $xb, $yb, $i - 1, $color);
drawKoch($image, $xb, $yb, $xc, $yc, $i - 1, $color);
drawKoch($image, $xc, $yc, $xd, $yd, $i - 1, $color);
drawKoch($image, $xd, $yd, $xe, $ye, $i - 1, $color);
}
}
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>
uses GraphABC;
procedure Draw(x, y, l, u : Real; t : Integer);
procedure Draw2(Var x, y: Real; l, u : Real; t : Integer);
begin
Draw(x, y, l, u, t);
x := x + l*cos(u);
y := y - l*sin(u);
end;
begin
if t > 0 then
begin
l := l/3;
Draw2(x, y, l, u, t-1);
Draw2(x, y, l, u+pi/3, t-1);
Draw2(x, y, l, u-pi/3, t-1);
Draw2(x, y, l, u, t-1);
end
else
Line(Round(x), Round(y), Round(x+cos(u)*l), Round(y-sin(u)*l))
end;
begin
SetWindowSize(425,500);
SetWindowCaption('Фракталы: Снежинка Коха');
Draw(10, 354, 400, pi/3, 4);
Draw(410, 354, 400, pi, 4);
Draw(210, 8, 400, -pi/3, 4);
end.
import turtle
turtle.hideturtle()
turtle.tracer(0)
turtle.penup()
turtle.setposition(-200, 0)
turtle.pendown()
axiom = "F"
tempAx = ""
iterable = 4
logic = {
'F': 'F-F+F-F'
}
for i in range(iterable):
for j in axiom:
if j in logic:
tempAx += logic[j]
else:
tempAx += j
axiom, tempAx = tempAx, ''
for k in axiom:
if k == '+':
turtle.right(120)
elif k == '-':
turtle.left(60)
else:
turtle.forward(5)
turtle.update()
turtle.mainloop()
Свойства[править | править код]
- Кривая Коха нигде не дифференцируема и не спрямляема.
- Кривая Коха имеет бесконечную длину.
- Кривая Коха не имеет самопересечений.
- Кривая Коха имеет промежуточную (то есть не целую) хаусдорфову размерность, которая равна , поскольку она состоит из четырёх равных частей, каждая из которых подобна всей кривой с коэффициентом подобия 1/3.
- Плоскость допускает замощение снежинками Коха двух размеров (площадь меньшей снежинки в 3 раза меньше площади большей). При этом не существует замощения снежинками одного размера.[1]
Вариации и обобщения[править | править код]
Возможны обобщения кривой Коха, также использующие при построении подстановку ломаной из четырёх равных отрезков, но имеющей иную геометрию. Они имеют хаусдорфову размерность от 1 до 2. В частности, если вместо деления отрезка 1:1:1 использовать золотое сечение (φ:1:φ), то получившаяся кривая имеет отношение к мозаикам Пенроуза.
Также можно построить «Снежинку Коха» на сторонах равностороннего треугольника.
Вслед за подходом Коха были разработаны варианты с прямыми углами (квадратичная), других углов (Чезаро ) или кругов и их расширения на высшие размерности (сферическая снежинка):
Вариант | Иллюстрация | Получение |
---|---|---|
1D, 85°, угол | Фрактал Cesaro — вариант кривой Коха с углом между 60° и 90° (здесь 85°) | |
1D, 90°, угол | ||
1D, 90°, угол | ||
2D, треугольники | ||
2D, 90°, угол | Расширение квадратичного кривой 1 типа, соответствующее «вывернутой губке Менгера»[2]. На изображении слева — фрактал после второй итерации: | |
2D, 90°, угол | Расширение квадратичного кривой 2 типа. На изображении слева — фрактал после первой итерации | |
2D, сферы | Эрик Хэйнс разработал фрактал «сферическая снежинка», который является трёхмерной версией снежинки Коха (используются сферы) |
Снежинка Коха[править | править код]
Снежинка Коха, построенная в виде замкнутой кривой на базе равностороннего треугольника, впервые была описана шведским математиком Хельге фон Кохом в 1904 году[3]. В некоторых работах она получила название «остров Коха»[4].
Было доказано, что эта фрактальная кривая обладает рядом любопытных свойств. К примеру, длина её периметра равна бесконечности, что, однако, не мешает ему охватывать конечную площадь, величина которой равна 8/5 площади базового треугольника[5]. Вследствие этого факта некоторые прикладные методики и параметры плоских фигур, такие как, например, краевой индекс (отношение периметра к корню из площади), при работе со снежинкой Коха оказываются неприменимыми[4].
Вычисление фрактальной размерности снежинки Коха даёт значение, приблизительно равное 1,2619[3][4].
Возможно также построение так называемой антиснежинки Коха, алгоритм генерирования которой заключается в вырезании на каждом этапе всё новых и новых треугольников из исходного. Иными словами, рёбра базовой формы модифицируются внутрь, а не наружу. В результате полученная фигура охватывает бесконечное множество несвязанных областей, суммарная площадь которых равна 2/5 от площади треугольника нулевой итерации[5].
Примечания[править | править код]
- ↑ Burns, Aidan. Fractal tilings (неопр.) // Mathematical Gazette . — 1994. — Т. 78, № 482. — С. 193—196. — ..
- ↑ Baird, Eric. Alt.Fractals: A visual guide to fractal geometry and design. Chocolate Tree Books (2011) ISBN 0-9557068-3-1 — Chapter 3 «Not the Koch Snowflake», esp. pages 23—24.
- ↑ 1 2 E. Seligman. Between the Dimensions (From Math Mutation podcast 22) // Math Mutation Classics. Exploring Interesting, Fun and Weird Corners of Mathematics. — Hillsboro, Oregon, USA: APRESS, 2016. — P. 53. — ISBN 978-1-4842-1891-4. — doi:10.1007/978-1-4842-1892-1.
- ↑ 1 2 3 Гелашвили Д. Б., Иудин Д. И., Розенберг Г. С., Якимов В. Н., Солнцев Л. А. 2.3. Регулярные фракталы // Фракталы и мультифракталы в биоэкологии. — Нижний Новгород: Нижегородский госуниверситет, 2013. — С. 49. — 370 с. — ISBN 978-5-91326-246-2.
- ↑ 1 2 А. А. Потапов, Ю. В. Гуляев, С. А. Никитов, А. А. Пахомов, В. А. Герман. Классические фрактальные кривые и множества // Новейшие методы обработки изображений / А. А. Потапов. — М.: «Физматлит», 2008. — С. 82. — 496 с. — ISBN 978-5-9221-0841-6.