Вечная жизнь и прочие приколюшки (наглядная математика, часть 2)

От пользователя .\'
вот, что у меня выходило.

Прикольно. В какой проге генерили?
В какой то из этих?
http://eax.me/fractal-generators/

[Сообщение изменено пользователем 26.02.2014 23:10]
0
LаnaBel
Честно уже не помню — вреде Хаos... Прога лёгкая, функциональная, генерит быстро. Лежит где то на винте.
0
Z fernes land (Зануда) Z
Так, забыли про вечную жизнь...
Вот вам новая приколюшка, сделанная по совершенно иному принципу:


Фотография из Фотогалереи на E1.ru



Фотография из Фотогалереи на E1.ru


Чуть позже расскажу, как мы с дочкой такую бадягу замутили. :-)
0
-= Arbitr =-
От пользователя Камчатка (Зануда)
Чуть позже расскажу, как мы с дочкой такую бадягу замутили

яростно мониторю!
2 / 0
кызылдуркороль Гондураса
От пользователя Камчатка (Зануда)
Вот вам новая приколюшка, сделанная по совершенно иному принципу:

Шоза дифракция Френеля? :-D
1 / 0
GigaVolt
0
-= Arbitr =-
Это код QR в действии!!! :-)
666 :ultra:
0
Z fernes land (Зануда) Z
От пользователя кызылдур, король гондураса
Шоза дифракция Френеля?

Начну издалека... :-D


Много лет назад, во времена СССР, когда я ещё был школьником, выходил такой журнал "Квант". В нём я однажды наткнулся на очень интересную статью, связанную с принципами округления. Поскольку я был уже старшеклассником и имел в школе доступ к компьютеру (Роботрон), я тут же реализовал алгоритм на компе и делал потом распечатки этих "дифракционных узоров" восхищённым девушкам и даже преподавательнице информатики. :-)

В этом году дочка прошла в школе деление с остатком (отошла от целых чисел), поэтому у меня появилась возможность объяснить ей весь алгоритм. Он довольно прост, хоть мне и пришлось поломать голову, вспоминая, что там было написано в "Кванте" 28 лет назад. :-D


Алгоритм такой:

1) Берём координатную сетку с осями X, Y и разбиваем её на квадратики с шагом дельта X и дельта Y.

2) Берём любую функцию Z = f(X,Y) и вычисляем её значение в центре каждого квадратика.

3) Отбрасываем всю дробную часть Z в каждом квадратике и проверяем чётность полученного целого значения. Если чётное - квадрат закрашиваем, если нет - не закрашиваем.

Вот и всё. Проще некуда. :-)



Теперь о том, что показано на выложенных гифках:

1) Область расчётов принята от -10 до 10, как по X, так и по Y.

2) Функция такая: Z = X^2 + Y^2

3) Начальный шаг разбивки равен 0,5 (первый кадр гифки). На втором кадре шаг разбивки равен 0,5 / 1,1 = 0,45 На третьем кадре шаг разбивки равен 0,45 / 1,1 = 0,41. Ну и так далее... Всего в гивке 55 кадров, дальше с дроблением шага сильно выростает время расчётов - лень ждать.



Мы прогнали и другие функции, не менее интересные. :-)
Ещё можно поиграть областью вычислений.
В выходные постараюсь ещё таких шняг накидать по другим функциям.

[Сообщение изменено пользователем 21.03.2014 15:00]
0
Z fernes land (Зануда) Z
От пользователя GigaVolt
GigaVolt

Это что за картинка?
0
Z fernes land (Зануда) Z
Я, кстати, не уверен, что воспроизвёл именно тот алгоритм, который был описан в "Кванте". Если кто нибудь помнит ссылку на ту статью, то киньте пожалуйста. Это квант примерно 1986-1988 годов. Точнее сказать не могу. В инете архив кванта выложен только с середины 90-х. :-(
0
Є
От пользователя Камчатка (Зануда)
В инете архив кванта выложен только с середины 90-х.

http://kvant.mccme.ru/index.htm
0
Z fernes land (Зануда) Z
От пользователя Ї
http://kvant.mccme.ru/index.htm

Ох, спасибо! :hi:
Сейчас пороюсь...


ЗЫ: Странно, а почему мне поисковики лишь урезанные архивы предлагали? :confused:
0
Z fernes land (Зануда) Z
От пользователя Камчатка (Зануда)
Сейчас пороюсь...

Вот оно!
http://kvant.mccme.ru/1987/11/matematicheskie_uzor...
"Математические узоры на плоскости"
:hi:

Примеры узоров:
http://kvant.mccme.ru/1987/11/pti.htm
http://kvant.mccme.ru/1987/11/pot.htm
:hi:

[Сообщение изменено пользователем 22.03.2014 02:48]
0
GigaVolt
От пользователя Камчатка (Зануда)
Это что за картинка?

Обложка музыкального альбома Gonjasufi "Sufi And a Killer" 2010 года.
0
Є
От пользователя Камчатка (Зануда)
Странно, а почему мне поисковики лишь урезанные архивы предлагали?

Наверное, поисковики ко мне неравнодушны, а к вам несправедливы. :-)
0
Є
А если серьезно, то идея сделать движущуюся картинку -- очень хороша. Само то для ребенка. Я вообще считаю, что учить язык надо именно на таких симпатичных задачах. Еще бы цвет добавить.
0
Z fernes land (Зануда) Z
От пользователя Ї
Еще бы цвет добавить.

В статике уже пробовали разные цвета для деления на 2, 3, 5, 7, 11, 13, ... - получается не так выразительно, как для четное / нечётное.
Для 2,3,4,5,6,... тоже пробовали...
0
Є
От пользователя Камчатка (Зануда)
В статике уже пробовали разные цвета для деления на 2, 3, 5, 7, 11, 13, ... - получается не так выразительно, как для четное / нечётное.
Для 2,3,4,5,6,... тоже пробовали...

Так можно нечетные оставлять черными, а четные закрашивать, интенсивность одной из составляющих цвета брать, скажем, равной значению функции в центре квадрата, остальные -- максимальное значение. По крайней мере, для функции, у которой максимум на квадрате не превосходит 255, у вас как раз такая. Да даже не важно какой максимум, брать значение по модулю 255 и все.

Или, допустим, если делится на 3, то одну из цветовых составляющих занулять, если делится на 7, то занулять другую, если делится и на 3 и на 7, то занулять обе, третью оставлять максимальной для контраста с черными квадратиками.

Еще можно менять цвет в зависимости от номера шага. То есть, каждый момент времени картинка двухцветная, но, второй цвет меняется, первый остается черным.
От пользователя Камчатка (Зануда)
В статике

Обратила внимание на это слово. Почитала пост выше:
От пользователя Камчатка (Зануда)
дальше с дроблением шага сильно выростает время расчётов - лень ждать

И у меня возник вопрос: каков размер обрабатываемого рисунка?
0
Z fernes land (Зануда) Z
От пользователя Камчатка (Зануда)
3)
Начальный шаг разбивки равен 0,5 (первый кадр гифки). На втором кадре шаг разбивки равен 0,5 / 1,1 = 0,45 На третьем кадре шаг разбивки равен 0,45 / 1,1 = 0,41. Ну и так далее... Всего в гивке 55 кадров, дальше с дроблением шага сильно выростает время расчётов - лень ждать.

От пользователя Ї
И у меня возник вопрос: каков размер обрабатываемого рисунка?

На 56 кадре размер рисунка равен 7562 х 7562. Приходится обсчитывать и рисовать 57 миллионов квадратиков.

[Сообщение изменено пользователем 24.03.2014 00:37]
0
Z fernes land (Зануда) Z
От пользователя Камчатка (Зануда)
В статике уже пробовали разные цвета для деления на 2, 3, 5, 7, 11, 13, ... - получается не так выразительно, как для четное / нечётное.

Вот в динамике:

Фотография из Фотогалереи на E1.ru





А вот это для функции Z = X^2 * Y - Y^2 * X

Фотография из Фотогалереи на E1.ru



:-)

[Сообщение изменено пользователем 24.03.2014 01:10]
1 / 0
Є
От пользователя Камчатка (Зануда)
А вот это для функции Z = X^2 * Y - Y^2 * X

красиво
От пользователя Камчатка (Зануда)
На 56 кадре размер рисунка равен 7562 х 7562. Приходится обсчитывать и рисовать 57 миллионов квадратиков.

Зачем делать квадратики меньше размера точки выводимого на экран изображения?
0
Z fernes land (Зануда) Z
От пользователя Ї
Зачем делать квадратики меньше размера точки выводимого на экран изображения?

У меня в проге размер изображения 9924 х 9924. Это для вставки в Е1 мне его приходится ужимать в 16 раз.







Z = X^3 + Y^3

Фотография из Фотогалереи на E1.ru


[Сообщение изменено пользователем 24.03.2014 01:10]
0
Т Ш
лет 40 назад купил я в магазине что-то типа игрушки - называлась спирограф. Прикольная
0
Є
От пользователя Камчатка (Зануда)
9924 х 9924

Ну, это дело вкуса, размеры, то есть.
От пользователя запасной ник
спирограф

Вот, надо теперь Зануде идею подкинуть, чтобы сделал прогу, которая рисует соответствующие кривые. Красиво будет...
0
Z fernes land (Зануда) Z
От пользователя Ї
Вот, надо теперь Зануде идею подкинуть, чтобы сделал прогу, которая рисует соответствующие кривые. Красиво будет...

В прошлом году купили дочке спирограф и мы с ней вдвоём уже изъелозили его всего. Делать прогу уже не интересно. :-D
Спирографы сейчас продают в любом магазине "школьник". :-)
0
Авторизуйтесь, чтобы принять участие в дискуссии.