Лучшие вопросы
Таймлайн
Чат
Перспективы
Кривая Коха
Из Википедии, свободной энциклопедии
Remove ads
Кривая Коха — фрактальная кривая, описанная в 1904 году шведским математиком Хельге фон Кохом.


Три копии кривой Коха, построенные (остриями наружу) на сторонах правильного треугольника, образуют замкнутую кривую бесконечной длины, называемую снежинкой Коха.
Построение
Кривая Коха является типичным геометрическим фракталом. Процесс её построения выглядит следующим образом: берём единичный отрезок, разделяем на три равные части и заменяем средний интервал равносторонним треугольником без этого сегмента. В результате образуется ломаная, состоящая из четырёх звеньев длины . На следующем шаге повторяем операцию для каждого из четырёх получившихся звеньев и так далее. Предельная кривая и есть кривая Коха.
Пример скрипта (PHP)
<?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);
?>
Пример прямоугольной кривой (Pascal)
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.
Пример прямоугольной кривой (Python)
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()
Remove ads
Свойства

- Кривая Коха нигде не дифференцируема и не спрямляема.
- Кривая Коха имеет бесконечную длину.
- Кривая Коха не имеет самопересечений.
- Кривая Коха имеет промежуточную (то есть не целую) хаусдорфову размерность, которая равна , поскольку она состоит из четырёх равных частей, каждая из которых подобна всей кривой с коэффициентом подобия .
- Плоскость допускает замощение снежинками Коха двух размеров (площадь меньшей снежинки в 3 раза меньше площади большей). При этом не существует замощения снежинками одного размера.[1]
Remove ads
Вариации и обобщения
Суммиров вкратце
Перспектива
Возможны обобщения кривой Коха, также использующие при построении подстановку ломаной из четырёх равных отрезков, но имеющей иную геометрию. Они имеют хаусдорфову размерность от 1 до 2. В частности, если вместо деления отрезка 1:1:1 использовать золотое сечение (:1:), то получившаяся кривая имеет отношение к мозаикам Пенроуза.
Также можно построить «Снежинку Коха» на сторонах равностороннего треугольника.
Вслед за подходом Коха были разработаны варианты с прямыми углами (квадратичная), других углов (Чезаро[англ.]) или кругов и их расширения на высшие размерности (сферическая снежинка).
Снежинка Коха


Снежинка Коха, построенная в виде замкнутой кривой на базе равностороннего треугольника, впервые была описана шведским математиком Хельге фон Кохом в 1904 году[3]. В некоторых работах она получила название «остров Коха»[4].
Было доказано, что эта фрактальная кривая обладает рядом любопытных свойств. К примеру, длина её периметра равна бесконечности, что, однако, не мешает ему охватывать конечную площадь, величина которой равна площади базового треугольника[5]. Вследствие этого факта некоторые прикладные методики и параметры плоских фигур, такие как, например, краевой индекс (отношение периметра к корню из площади), при работе со снежинкой Коха оказываются неприменимыми[4]. Вычисление фрактальной размерности снежинки Коха даёт значение, приблизительно равное 1,2619[3][4].
Возможно также построение так называемой антиснежинки Коха, алгоритм генерирования которой заключается в вырезании на каждом этапе всё новых и новых треугольников из исходного. Иными словами, рёбра базовой формы модифицируются внутрь, а не наружу. В результате полученная фигура охватывает бесконечное множество несвязанных областей, суммарная площадь которых равна от площади треугольника нулевой итерации[5].
Remove ads
Примечания
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads