https://github.com/xanstar6067/fractalexplorer
Большой проект по объединению программ генерации фракталов. A large project to combine fractal generation programs.
https://github.com/xanstar6067/fractalexplorer
burning-ship burning-ship-set csharp custom-rendering-style decimal-arithmetic fractal fractal-renderer fractals graphics julia-set mandelbrot-set math multithreading parallel-computing simulation visual-studio visualization winforms
Last synced: 11 months ago
JSON representation
Большой проект по объединению программ генерации фракталов. A large project to combine fractal generation programs.
- Host: GitHub
- URL: https://github.com/xanstar6067/fractalexplorer
- Owner: xanstar6067
- Created: 2025-06-05T07:54:15.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-24T08:11:42.000Z (12 months ago)
- Last Synced: 2025-06-24T08:24:30.943Z (12 months ago)
- Topics: burning-ship, burning-ship-set, csharp, custom-rendering-style, decimal-arithmetic, fractal, fractal-renderer, fractals, graphics, julia-set, mandelbrot-set, math, multithreading, parallel-computing, simulation, visual-studio, visualization, winforms
- Language: C#
- Homepage:
- Size: 812 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Fractal Explorer
Welcome to Fractal Explorer! This is a Windows Forms application written in C# that allows you to generate, explore, and customize various types of beautiful fractal images.
## 🌟 Key Features
* **Variety of Fractals:** Explore classic and lesser-known fractals:
* Mandelbrot Set
* Julia Set (with interactive 'C' constant selection)
* Burning Ship (Mandelbrot and Julia versions)
* Serpinski Triangle (Geometric method and Chaos Game)
* Newton Pools (with the ability to input custom formulas)
* **Interactive Navigation:**
* Smooth zooming using the mouse wheel.
* Panning the image by dragging with the mouse.
* **Deep Parameter Customization:**
* Control the number of iterations and escape threshold.
* Adjust the 'C' constant for Julia sets using a visual selector on a preview of the Mandelbrot or Burning Ship set.
* Select the number of CPU threads to speed up rendering.
* **Advanced Color Management:**
* **For Mandelbrot/Julia Family:**
* Powerful palette editor: create, edit, and save custom palettes.
* Support for gradient and discrete (cyclic) palettes.
* A set of built-in palettes for a quick start.
* Saving custom palettes in JSON format.
* **For Newton Pools:**
* Specialized color settings for each root of the equation.
* Background color selection.
* Toggle between gradient and discrete coloring for basins.
* Save and load custom palettes for Newton fractals.
* **For Serpinski Triangle:**
* Choice of rendering mode: black & white, grayscale, custom colors for fractal and background.
* **Rendering and Saving:**
* Tile-based rendering for previews with process visualization.
* Multi-threaded rendering for efficient use of CPU resources.
* Save fractals in high resolution (PNG) with customizable dimensions.
* Progress bars for rendering and saving operations.
* **Custom Input for Newton Pools:**
* Built-in parser for mathematical expressions (complex functions `f(z)`).
* Ability to choose from preset formulas or input your own.
* Display of parser debug information and found roots.
* **High-Precision Math:**
* Use of a custom `ComplexDecimal` type for high-precision complex number operations (based on `decimal`).
## 🚀 Implemented Fractals
* **Mandelbrot Set:** `z = z² + c`
* **Julia Set:** `z = z² + c` (with a selectable constant `c`)
* **Burning Ship (Mandelbrot):** `z = (|Re(z)| + i * |-Im(z)|)² + c`
* **Burning Ship (Julia):** `z = (|Re(z)| + i * |-Im(z)|)² + c` (with a selectable constant `c`)
* **Serpinski Triangle:**
* Geometric method (recursive construction)
* "Chaos Game" (stochastic method)
* **Newton Pools:** Iterative Newton's method for finding roots of complex functions `f(z)`. Regions are colored based on which root the point converges to.
## 🛠️ Technical Details
* **Language:** C#
* **Platform:** .NET Windows Forms
* **Rendering:**
* Tile-based system for incremental display.
* Multithreading to accelerate calculations.
* Visualizer for the tile rendering process.
* **Mathematics:**
* Custom `ComplexDecimal` structure for high-precision complex numbers.
* Mathematical expression parser for the Newton fractal (supports numbers, variable 'z', 'i', and operators `+`, `-`, `*`, `/`, `^`).
* **Palettes:**
* Serialization of custom palettes to JSON using a custom `JsonColorConverter`.
## 🖥️ How to Use
1. Launch the application `FractalExplorer.exe`.
2. In the main window ("Fractal Manager" / "Менеджер фракталов"), select the fractal type you are interested in from the tabs.
3. Click the "Launch" button for the respective fractal.
4. In the opened fractal window:
* Adjust parameters (iterations, zoom, 'C' constant for Julia, etc.) on the left panel.
* Configure the color palette (if available for the given fractal type).
* Use the mouse wheel to zoom and the left mouse button to pan the view.
* Click "Render" to update the image with new parameters.
* Save your favorite images in high resolution.
## 🖼️ Screenshots
.gallery {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.gallery img {
border: 1px solid #ddd;
padding: 5px;
transition: transform 0.2s;
}
.gallery img:hover {
transform: scale(1.1);
}
a {
text-decoration: none;
}
## 📜 License
This project is distributed under the Apache 2.0 license. The full text of the license is available in [LICENSE.md](LICENSE.md).
# Исследователь Фракталов (Fractal Explorer)
Добро пожаловать в "Исследователь Фракталов"! Это приложение для Windows Forms, написанное на C#, позволяет генерировать, исследовать и настраивать различные типы красивых фрактальных изображений.
## 🌟 Ключевые Возможности
* **Разнообразие Фракталов:** Исследуйте классические и менее известные фракталы:
* Множество Мандельброта
* Множество Жюлиа (с интерактивным выбором константы 'C')
* Горящий Корабль (версии Мандельброта и Жюлиа)
* Треугольник Серпинского (геометрический метод и "Игра Хаоса")
* Бассейны Ньютона (с возможностью ввода собственных формул)
* **Интерактивная Навигация:**
* Плавное масштабирование с помощью колеса мыши.
* Панорамирование изображения перетаскиванием мыши.
* **Глубокая Настройка Параметров:**
* Управление количеством итераций и порогом выхода.
* Настройка константы 'C' для множеств Жюлиа с помощью визуального селектора на превью множества Мандельброта или Горящего Корабля.
* Выбор количества потоков ЦП для ускорения рендеринга.
* **Продвинутая Работа с Цветом:**
* **Для семейства Мандельброта/Жюлиа:**
* Мощный редактор палитр: создавайте, редактируйте и сохраняйте пользовательские палитры.
* Поддержка градиентных и дискретных (циклических) палитр.
* Набор встроенных палитр для быстрого старта.
* Сохранение пользовательских палитр в формате JSON.
* **Для Бассейнов Ньютона:**
* Специализированная настройка цветов для каждого корня уравнения.
* Выбор цвета фона.
* Переключение между градиентной и дискретной окраской бассейнов.
* Сохранение и загрузка пользовательских палитр для Ньютона.
* **Для Треугольника Серпинского:**
* Выбор режима отрисовки: черно-белый, оттенки серого, пользовательские цвета для фрактала и фона.
* **Рендеринг и Сохранение:**
* Плиточный (тайловый) рендеринг для предпросмотра с визуализацией процесса.
* Многопоточный рендеринг для эффективного использования ресурсов ЦП.
* Сохранение фракталов в высоком разрешении (PNG) с настраиваемыми размерами.
* Прогресс-бары для операций рендеринга и сохранения.
* **Пользовательский Ввод для Бассейнов Ньютона:**
* Встроенный парсер для математических выражений (комплексные функции `f(z)`).
* Возможность выбора из предустановленных формул или ввода своей собственной.
* Отображение отладочной информации парсера и найденных корней.
* **Высокоточная Математика:**
* Использование пользовательского типа `ComplexDecimal` для операций с комплексными числами повышенной точности (на основе `decimal`).
## 🚀 Реализованные Фракталы
* **Множество Мандельброта:** `z = z² + c`
* **Множество Жюлиа:** `z = z² + c` (с выбираемой константой `c`)
* **Горящий Корабль (Мандельброт):** `z = (|Re(z)| + i * |-Im(z)|)² + c`
* **Горящий Корабль (Жюлиа):** `z = (|Re(z)| + i * |-Im(z)|)² + c` (с выбираемой константой `c`)
* **Треугольник Серпинского:**
* Геометрический метод (рекурсивное построение)
* "Игра Хаоса" (стохастический метод)
* **Бассейны Ньютона:** Итерационный метод Ньютона для поиска корней комплексных функций `f(z)`. Области окрашиваются в зависимости от того, к какому корню сходится точка.
## 🛠️ Технические Детали
* **Язык:** C#
* **Платформа:** .NET Windows Forms
* **Рендеринг:**
* Плиточная (тайловая) система для инкрементального отображения.
* Многопоточность для ускорения вычислений.
* Визуализатор процесса рендеринга плиток.
* **Математика:**
* Пользовательская структура `ComplexDecimal` для высокоточных комплексных чисел.
* Парсер математических выражений для фрактала Ньютона (поддерживает числа, переменную 'z', 'i' и операторы `+`, `-`, `*`, `/`, `^`).
* **Палитры:**
* Сериализация пользовательских палитр в JSON с использованием кастомного `JsonColorConverter`.
## 🖥️ Как Использовать
1. Запустите приложение `FractalExplorer.exe`.
2. В главном окне ("Менеджер фракталов") выберите интересующий вас тип фрактала из вкладок.
3. Нажмите кнопку "Запустить" для соответствующего фрактала.
4. В открывшемся окне фрактала:
* Настройте параметры (итерации, масштаб, константу 'C' для Жюлиа и т.д.) на панели слева.
* Настройте цветовую палитру (если доступно для данного типа фрактала).
* Используйте колесо мыши для масштабирования и левую кнопку мыши для панорамирования области просмотра.
* Нажмите "Запустить рендер" для обновления изображения с новыми параметрами.
* Сохраняйте понравившиеся изображения в высоком разрешении.
## 🖼️ Скриншоты
.gallery {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.gallery img {
border: 1px solid #ddd;
padding: 5px;
transition: transform 0.2s;
}
.gallery img:hover {
transform: scale(1.1);
}
a {
text-decoration: none;
}
## 📜 Лицензия
Этот проект распространяется под лицензией Apache 2.0. Полный текст лицензии доступен в [LICENSE.md](LICENSE.md).
---
Project AI generated
Проект создан при помощи ИИ