fregimus: (Default)
[personal profile] fregimus
Фрактальная снежинка Коха — в комментариях попросили нарисовать в Математике.

Берем правильный треугольник, каждую сторону делим на 3 части. Средний отрезок выбрасываем, а вместо него вставляем два таких же, соединенных «уголком». На первом шаге получается «звезда Давида». Повторяем процедуру с ней. С получившейся кривой — опять повторяем. Если повторять до бесконечности, то длина кривой будет расти до бесконечности, хотя площадь внутри кривой ограничена сверху.

На рисунке первые 5 шагов. Чтобы было понятно, как она строится, каждый раз снежинка «вырастает» в полтора раза и перекрашивается.



Исходный код, Mathematica 6.0. Сделан на основе R. Maeder. Generating the Koch Snowflake with Mathematica, 1992..
KochFlake[order_, size_] :=
  Nest[ (#1 /. Line[{start_, finish_}] :>
       Block[{normal, vec},
         vec = finish - start;
         normal = Reverse[vec] * {-1, 1} * Sqrt[3]/6;
         { Line[{start, start + vec/3}],
           Line[{start + vec/3, start + vec/2 + normal}],
           Line[{start + vec/2 + normal, start + 2 vec/3}],
           Line[{start + 2 vec/3, finish}] } ])&,
    Line /@ Partition[size * {{0, 1},{Sqrt[3]/2, -1/2},{-Sqrt[3]/2, -1/2}},
                      2, 1, {1, 1}],
    order];
   
Graphics[{Darker[Hue[#/6]], KochFlake[#, 1.5^#]} & /@ Range[0, 4],
         AspectRatio -> Automatic, ImageSize -> {420, Automatic}]

Хозяйке на заметку: если будете экспериментировать с функцией KochFlake[], замените size в аргументе Partition[] на 1.0 * size, либо всегда передавайте плавающее число для аргумента size, как это делаю я в данном примере. Операции с плавающими числами Mathematica исполняет значительно быстрее, чем с корнями и рациональными — в данном случае примерно в 10 раз.
Tags:

(no subject)

2009-03-03 06:56 (UTC)
Posted by [identity profile] ta-samaja.livejournal.com
Красиво :)

(no subject)

2009-03-03 07:33 (UTC)
Posted by [identity profile] fregimus.livejournal.com
Спасибо. Я старался!

(no subject)

2009-03-03 07:20 (UTC)
Posted by [identity profile] vadim-i-z.livejournal.com
Есть у нас очень толковая студентка по фамилии Кохан. Все забываю сказать ей, что на экзамене ее однокурсница сказала: "Кривая Кохан"...

(no subject)

2009-03-03 07:35 (UTC)
Posted by [identity profile] fregimus.livejournal.com
Да, может, оно и к лучшему… Я уж Вам, кажется, рассказывал — когда я учился, сокурсник на экзамене выдал «аксиомы Пеанино».

(no subject)

2009-03-03 07:39 (UTC)
Posted by [identity profile] vadim-i-z.livejournal.com
А я уже рассказывал про "уравнение Короткевича-де Фриза"...

(no subject)

2009-03-03 09:14 (UTC)
Posted by [identity profile] dgri.livejournal.com
Интересно, это от "кохати/кахаць", или от "Коган/Cohen"? :-))

(no subject)

2009-03-03 11:09 (UTC)
Posted by [identity profile] vadim-i-z.livejournal.com
Скорее первое...

(no subject)

2009-03-03 11:35 (UTC)
Posted by [identity profile] dgri.livejournal.com
Значит, тех, у кого фамилия на "ко", по-прежнему принимают? :-))

(no subject)

2009-03-03 11:39 (UTC)
Posted by [identity profile] vadim-i-z.livejournal.com
Ты хотел сказать "у тех"? Речь все-таки об экзамене...
Да, у них тоже принимают.

(no subject)

2009-03-07 13:04 (UTC)
Posted by [identity profile] surfman83.livejournal.com
100% от Коган

Офигеть!

2009-03-03 08:17 (UTC)
Posted by [identity profile] m-elena.livejournal.com
Вот теперь я наконец-то поняла, почему фрактал - самоподобная фигура. Раньше только это знала и твердила как попугай. Попробую тоже нарисовать

(no subject)

2009-03-04 20:05 (UTC)
Posted by [identity profile] rickkinsky.livejournal.com
А также салфетка Серпинского, да-да. Что создана специально для проклятий: "Чтоб ты вытирался салфеткой Серпинского!"

(no subject)

2009-03-03 09:15 (UTC)
Posted by [identity profile] dgri.livejournal.com
Пропаганда фрактального сионизма! :))

(no subject)

2009-03-03 23:18 (UTC)
Posted by [identity profile] fregimus.livejournal.com
Да всё кругом — происки масонов!

(no subject)

2009-03-12 20:41 (UTC)
Posted by [identity profile] fe-b.livejournal.com
Поинтересуйтесь программой contextfree.exe
http://www.contextfreeart.org/

Там все фрактальное рисуется гораздо элегантнее.

(no subject)

2009-03-12 20:43 (UTC)
Posted by [identity profile] fregimus.livejournal.com
Спасибо. Тут не вопрос элегантности — речь-то о математическом объекте.

(no subject)

2009-03-12 21:12 (UTC)
Posted by [identity profile] fe-b.livejournal.com
Да я не ради объекта, а ради программы.
Она сама есть реализация математического объекта - контекстно-свободной грамматики.

И умеет удивительные вещи.

(no subject)

2009-03-12 21:17 (UTC)
Posted by [identity profile] fregimus.livejournal.com
Ага, спасибо, я посмотрел. Действительно, интересная вещь. Пропеарю.

(no subject)

2009-04-12 16:18 (UTC)
Posted by (Anonymous)
не снежника Коха, а снежинка Koх. Кох - женщина

(no subject)

2009-04-12 20:41 (UTC)
Posted by [identity profile] fregimus.livejournal.com
Правда, что ли? Надо же, а такая с усами, бородой, в строгом костюме с галстуком. Ни за что бы не подумал!
Edited 2009-04-12 20:43 (UTC)

(no subject)

2009-12-03 17:08 (UTC)
Posted by (Anonymous)
Кто нибудь подскажите сколько ребер в границе снежинки Коха после четвертого шага? Плииииииз

(no subject)

2009-12-03 22:57 (UTC)
Posted by [identity profile] fregimus.livejournal.com
Возьмите сторону начального треугольника, включая одну вершину, но исключая следующую:

*________о

Одна вершина (звездочка — включенная точка, о - «выколотая»). Треугольник сложен из трех таких штук без перекрытия. По построению, эта сторона заменяется на

*___/\___о

Четыре вершины. На каждом шаге одна вершина превращается в 4. Дальше додумаете?

(no subject)

2011-12-06 20:46 (UTC)
Posted by [identity profile] aleksey demidof (from livejournal.com)
Спасибо. Но всё равно не понятно, не умею я работать в математике.

Profile

fregimus: (Default)
fregimus

March 2014

S M T W T F S
       1
2 3456 78
910 1112 131415
16171819202122
23242526272829
3031     

Most Popular Tags

Page generated 2025-05-15 10:27

Expand Cut Tags

No cut tags