Визуализируем иррациональные числа по Бремеру или Transform для C++/CLI
Прикреплённый ниже проект C++/CLI рисует одно из известных графических представлений числа пи (визуализацию Бремера), почитать об этой и других визуализациях можно, например, здесь или вот тут.
Математические визуализации числа Пи - это интересно. Плюс проект показывает некоторые тонкости в работе с графикой на C++/CLI, в частности, как минимизировать искажения при переходе от "мировых" координат к пиксельным (см. SetTransformationWithoutDistortion
в коде). Ну и вообще о работе со свойством Transform
объекта Graphics
на C++ особо нигде нету информации.
пример сгенерированной картинки, визуализация по Бремеру числа пи с миллионом знаков в дробной части
Картинку можно сохранить, можно также поменять количество шагов расчёта (до миллиона, так как имеющийся в архиве проекта файл pi.txt
содержит число пи с точностью до миллиона знаков в дробной части). Достаточно изменить этот текстовый файл (десятичной точки после первого символа "3" нету, все числа расположены в одну строку!), чтобы программа смогла работать с большим количеством данных.
При перерисовке картинка масштабируется по меньшему из размеров окна приложения. Есть также опция "рамка", особо не нужная. Она нарисует обрамление области построения. Ниже прикреплён архив с решением Visual C++, который собирался в Studio 2019, но на уровне исходников, думаю, это легко перенести и в другие версии.
Скачать решение Визуализация Бремера на C++/CLI в архиве .zip (467 Кб)
Если взять вот отсюда число Эйлера e 5 миллионами знаков в дробной части, удалить из файла лишние строки и точку после "2" а затем слить все строки в одну (например, вот этим решением), то впервые в истории увидим и число Эйлера, изображённое по методике Бремера.
Число e как визуализация Бремера
Если же у дроби будет период, даже достаточно большой, то никакого "космического числа" мы не увидим, а лишь скучную прямую:
Какая-то дробь с периодом как визуализация Бремера
А дальше, как говорится, полный простор для творчества.
Например, напрашивается для визуализации по Бремеру ещё одно число - константа "золотого сечения" Phi.
Миллион знаков этого числа я взял отсюда и подготовил файл данных по той же методике, что для остальных картинок. Число Phi оказалось просто прекрасно, как летящий прямо по оси восприятия дракон, вот оно:
визуализация по Бремеру константы золотого сечения Phi = 1.618... (миллион знаков в дробной части)
Пора уже открывать отдельную галерею :) Вот корень из 2 отсюда, не правда ли, он похож на убегающую вправо двойку-шахматного коня?
Корень из 2 с миллионом знаков в дробной части, визуализация по Бремеру
Как видим, так можно изобразить любое иррациональное число.
Вот корень из трёх (ссылка), он как какая-то космическая рыба.
Корень из 3 с миллионом знаков в дробной части, визуализация по Бремеру
Иррациональный корень из 5, цифры для которого взяты отсюда, явно находится в поисках кольцевой гармонии в своём клеточном уравнении окружности!
Корень из 5 с миллионом знаков в дробной части, визуализация по Бремеру
Число Zeta(3) или постоянную Апери можно с нужной точностью взять вот отсюда.
Скажет, она не похожа на себя, Дзету? Ещё как похожа :)
Zeta(3) с миллионом знаков в дробной части, визуализация по Бремеру
Вот архив с иррациональными числами, которые я использовал для работы с этой программой
- Число e: 5 000 000 цифр;
- Число phi (константа золотого сечения): 1 000 000 цифр;
- Число pi: 1 000 000 цифр;
- Корень квадратный из 2: 1 000 000 цифр;
- Корень квадратный из 3: 1 000 000 цифр;
- Корень квадратный из 5: 1 000 000 цифр;
- Число zeta (постоянная Апери): 980 000 цифр
Скачать архив .zip с файлами .txt иррациональных чисел (в однобайтовой кодировке, ~5Мб)
05.01.2020, 15:49 [2135 просмотров]