Кривая Коха
Из Википедии, бесплатной энциклопедии
Кривая Коха — фрактальная кривая, описанная в 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.