Math Function
Позволяет построить график функции с помощью команды или зачарования
- Загрузчики
- NeoForge
- Скачиваний на Modrinth
- 416
- Подписчиков на Modrinth
- 4
- версий
- 13
- Обновлён
- 7 августа 20267 авг.
- Опубликован
- в 2026
Коротко о моде
Нужен и в игре, и на сервере
Math Function
Вдохни жизнь в математику в Minecraft с помощью снарядов и графиков на основе функций!
📖 Введение
Math Function — это мод для Minecraft на NeoForge, который превращает математические выражения в интерактивный игровой опыт. Хочешь визуализировать функции в виде графиков из блоков или запускать снаряды по заданным кривым — этот мод привносит красоту математики прямо в твой мир.
Две ключевые возможности в одном моде:
1. Построение графиков из блоков — визуализируй любую функцию как трёхмерную структуру из блоков одной простой командой.
2. Зачарование функций — задавай оружию и инструментам собственные математические траектории, превращая стрелы, TNT, фейерверки и даже собственный полёт в управляемые функциональные кривые!
Поддерживаемые функции
| Категория | Функции |
|---|---|
| Базовая арифметика | + - * / |
| Степень | ^ (например, x^2) |
| Унарный оператор | -x (отрицательные числа) |
| Тригонометрия | sin(x) cos(x) tan(x) |
| Логарифмы | log(x) ln(x) log(base, value) log2 log10 |
| Корни | sqrt(x) sqrt(root, value) (например, sqrt(3, 27) = кубический корень) |
| Округление | floor(x) (округление вниз), ceil(x) (округление вверх), round(x) (округление до ближайшего), trunc(x) (отбрасывание дробной части) |
| Прочее | abs(x) exp(x) min(a, b) max(a, b) mod(a, b) |
| Случайные | Ran# (0~1) RanInt(min, max) |
| Константы | e pi |
| Вложенность | 3*x^2 + sin(2*x) |
Пользовательские функции
Определяй собственные переиспользуемые функции командой /customfunction! Идеально подходит для сложных выражений, которые ты используешь часто.
- Добавить: `/customfunction add
— например,/customfunction add square x^2` - Список:
/customfunction list— показать все сохранённые функции - Получить: `/customfunction get ` — посмотреть определение функции
- Вычислить: `/customfunction eval ` — быстро посчитать значение
- Изменить: `/customfunction modify <new_expression>` — обновить функцию
- Удалить: `/customfunction remove ` — удалить функцию
- Удалить все:
/customfunction remove-all— очистить всё (только для операторов)
Пользовательские функции сохраняются в custom_functions.json и остаются после перезапуска. Их можно использовать везде, где принимаются выражения: команды /fx, переименование в наковальне и траектории зачарований.
Примечание: Имена функций не могут совпадать со встроенными функциями (
sin,sqrt,logи т. д.), константами (e,pi) или зарезервированным именемf(во избежание конфликтов с префиксомf(x)=).
🧪 Команда построения графиков из блоков
/fx "<expression>" <min_x> <max_x> <block> [scale] [mode] [coordinateSystem]Параметры
| Параметр | Описание |
|---|---|
expression | Математическое выражение относительно x (например, "x^2 + 3*x - 5"). Поддерживает + - * / ^ sin cos tan sqrt log ln. |
min_x, max_x | Область определения функции (значения x). |
block | Блок для построения графика (например, minecraft:red_concrete). |
scale (необязательно) | Сколько блоков представляет одну единицу (по умолчанию = 1, диапазон 1–10). |
mode (необязательно) | stand — вертикальный график (Y = f(x)), floor — горизонтальный график (Z = f(x)). |
coordinateSystem (необязательно) | true / false — создавать ли координатную систему из кварца (начало в (0,0), смещено на 1 блок влево/вниз). |
Пример
/fx "x^2" -5 5 minecraft:blue_wool 2 stand trueСоздаёт параболу из синей шерсти от x=-5 до x=5, каждая единица = 2 блока, с системой координат.
⚔️ Зачарование функций
Переименуй любой подходящий предмет в f(x)=выражение или y=выражение (например, f(x)=x^2), и зачарование активируется автоматически. Команды не нужны — просто переименуй предмет в наковальне!
Подходящие предметы и их поведение
| Предмет | Эффект |
|---|---|
| Лук / Арбалет | Стрелы летят по кривой функции y = f(x), где x — горизонтальное расстояние, а y — высота относительно точки запуска. |
| Огниво | Подожжённый TNT летит по кривой функции, прежде чем взорваться. |
| Фейерверк | Фейерверки скользят по кривой и взрываются при попадании в блоки или сущности. |
| Трезубец (с Тягуном) | Игрок летит по кривой функции во время рывка в воде/под дождём — нажми клавишу прыжка, чтобы остановиться в любой момент! |
Пример использования
- Возьми лук и зачаруй его на Математическую функцию или получи через команды.
- Переименуй лук в наковальне в
f(x)=sin(x)*2. - Выстрели стрелой — она полетит красивой синусоидой!
- Для TNT: переименуй огниво в
y=cos(x)и подожги TNT. - Для трезубцев: переименуй трезубец с Тягуном в
f(x)=x^2/10и соверши рывок в воде!
Технические детали
- Начальная высота автоматически устанавливается в f(0), что обеспечивает корректную работу постоянных функций.
- Численное дифференцирование в реальном времени вычисляет касательную скорость для плавного движения.
- Обнаружение столкновений не даёт снарядам проходить сквозь блоки.
- Чисто возвращается к ванильной физике при выходе за пределы дальности, времени или при попадании.
- Поддерживается с версии 2.0, постоянно улучшается с каждым релизом.
✨ Возможности
- Разбор выражений в реальном времени — быстро и надёжно, без внешних библиотек.
- Непрерывные линии графиков — алгоритм Брезенхэма заполняет промежутки между точками выборки.
- Автоматическая обработка разрывов — обрывается в недопустимых точках (например,
1/xоколо 0,tan(x)на асимптотах). - Размещение по осям — график строится вдоль ближайшего кардинального направления в зависимости от того, куда ты смотришь.
- Траектория снарядов — полноценный полёт по функции с частицами-следами и столкновениями.
- Совместимость с мультивыстрелом — стрелы слегка разлетаются при использовании зачарования «Мультивыстрел».
- Безопасность по умолчанию — предотвращает отрисовку за пределами высоты мира и превышение лимитов производительности.
- Обратная связь с игроком — сообщения в чате показывают выражение, название блока, время выполнения и координаты начала.
- Пользовательские функции — определяй и переиспользуй свои математические функции командой
/customfunction.
🧩 Требования
- Minecraft: 1.21.1 (NeoForge)
- NeoForge: 21.1.176 или новее
📦 Установка
- Скачай последний JAR с Modrinth или GitHub Releases.
- Помести его в папку
mods. - Запусти Minecraft с установленным NeoForge.
- Начинай строить графики или запускать снаряды, управляемые функциями!
⚖️ Лицензия
Этот мод выпущен под GNU General Public License v3.0.
Ты можешь свободно использовать, изменять и распространять его при условии, что делишься своими изменениями под той же лицензией.
Подробности смотри в файле LICENSE.
🔗 Ссылки
中文介绍
📖 概述
Math Function — это мод для Minecraft на NeoForge, который превращает математические выражения в игровой интерактивный опыт. Строите ли вы графики функций из блоков или заставляете снаряды лететь по заданным кривым — этот мод покажет красоту математики прямо в вашем мире.
Один мод, две ключевые функции:
1. Генерация графиков из блоков — одной простой командой превратите любую функцию в 3D-структуру из блоков.
2. Функциональные чары — наделите оружие и инструменты математическими траекториями: стрелы, TNT, фейерверки и даже ваш собственный полёт станут управляемыми кривыми функций!
Поддерживаемые функции
| Категория | Функции |
|---|---|
| Базовые операции | + - * / |
| Возведение в степень | ^ (например, x^2) |
| Унарный минус | -x (отрицательные числа) |
| Тригонометрия | sin(x) cos(x) tan(x) |
| Логарифмы | log(x) ln(x) log(основание, число) log2 log10 |
| Корни | sqrt(x) sqrt(показатель, подкоренное) (например, sqrt(3, 27) = кубический корень из 27) |
| Округление | floor(x) (вниз), ceil(x) (вверх), round(x) (математическое), trunc(x) (отбрасывание дробной части) |
| Прочее | abs(x) exp(x) min(a, b) max(a, b) mod(a, b) |
| Случайные числа | Ran# (случайное число от 0 до 1) RanInt(min, max) (случайное целое в диапазоне) |
| Константы | e pi |
| Вложенность | 3*x^2 + sin(2*x) |
Пользовательские функции
Создавайте свои многоразовые функции командой /customfunction! Идеально для часто используемых сложных выражений.
- Добавить:
/customfunction add <имя> <выражение>— например,/customfunction add square x^2 - Список:
/customfunction list— показать все сохранённые функции - Просмотр:
/customfunction get <имя>— посмотреть определение функции - Вычислить:
/customfunction eval <имя> <значение x>— быстро вычислить значение функции - Изменить:
/customfunction modify <имя> <новое выражение>— обновить функцию - Удалить:
/customfunction remove <имя>— удалить функцию - Удалить всё:
/customfunction remove-all— очистить всё (нужны права администратора)
Пользовательские функции сохраняются в файле custom_functions.json и остаются после перезапуска. Их можно использовать везде, где принимается выражение: в команде /fx, при переименовании в наковальне и в траекториях чар.
Внимание: имя функции не должно совпадать со встроенными функциями (
sin,sqrt,logи т. д.), константами (e,pi) или зарезервированным именемf(чтобы избежать конфликта с префиксомf(x)=).
🧪 Команда построения графика из блоков
/fx "<выражение>" <мин_x> <макс_x> <блок> [масштаб] [режим] [координаты]Описание параметров
| Параметр | Описание |
|---|---|
выражение | Математическое выражение с переменной x, поддерживает + - * / ^ sin cos tan sqrt log ln |
мин_x, макс_x | Область определения (диапазон значений x) |
блок | Блок для построения графика (например, minecraft:red_concrete) |
масштаб (необязательно) | Сколько блоков соответствует 1 единице длины, по умолчанию 1, диапазон 1~10 |
режим (необязательно) | stand — вертикальный график (Y = f(x)), floor — горизонтальный график (Z = f(x)) |
координаты (необязательно) | true / false, создавать ли оси из кварцевых блоков (начало в (0,0), смещение на 1 блок влево/вниз) |
Пример
/fx "x^2" -5 5 minecraft:blue_wool 2 stand trueСтроит параболу из синей шерсти от x=-5 до x=5, где 1 единица длины = 2 блока, с отображением осей координат.
⚔️ Функциональные чары
Переименуйте любой совместимый предмет в f(x)=выражение или y=выражение (например, f(x)=x^2) — и чары активируются автоматически. Никаких команд, достаточно переименовать в наковальне!
Совместимые предметы и эффекты
| Предмет | Эффект |
|---|---|
| Лук / арбалет | Стрела летит по кривой y = f(x), где x — горизонтальное расстояние, y — высота относительно точки выстрела. |
| Огниво | Подожжённый TNT летит по кривой функции и взрывается при столкновении. |
| Фейерверк | Фейерверк скользит по кривой и взрывается при касании блока или сущности. |
| Трезубец (чары «Тягун») | Игрок летит по кривой функции при рывке в воде/под дождём — нажмите прыжок, чтобы остановиться в любой момент! |
| Другие снаряды (снежки, яйца и т. д.) | Также поддерживают траектории функций, просто переименуйте нужный предмет! |
Примеры использования
- Возьмите лук и зачаруйте его функцией или получите через команду.
- Переименуйте лук в наковальне в
f(x)=sin(x)*2. - Выстрелите стрелой — она полетит по красивой синусоиде!
- Использование с TNT: переименуйте огниво в
y=cos(x), затем подожгите TNT. - Использование с трезубцем: переименуйте трезубец с чарами «Тягун» в
f(x)=x^2/10и совершите рывок в воде! - Использование со снежком: переименуйте снежок в
f(x)=sqrt(25-x^2)— после броска он полетит по полукруглой траектории!
Технические детали
- Начальная высота автоматически устанавливается в f(0), чтобы даже константные функции работали корректно.
- Скорость касательной вычисляется через численное дифференцирование в реальном времени для плавного движения.
- Обнаружение столкновений не даёт снарядам проходить сквозь блоки.
- При выходе за пределы, по тайм-ауту или после столкновения автоматически возвращается ванильная физика.
- Поддерживается с версии 2.0, постоянно дорабатывается.
✨ Особенности
- Разбор выражений в реальном времени — быстро и надёжно, без внешних библиотек.
- Непрерывные графики — алгоритм рисования линий Брезенхэма заполняет промежутки между точками выборки.
- Автоматическая обработка разрывов — при недопустимых точках (например,
1/xвблизи 0, асимптотыtan(x)) график автоматически разрывается. - Размещение вдоль осей — график автоматически выравнивается по сторонам света в зависимости от направления взгляда игрока.
- Траектории снарядов — полноценный полёт по функции со следом из частиц и обработкой столкновений.
- Совместимость с «Мультивыстрелом» — при использовании чар «Мультивыстрел» стрелы слегка разлетаются.
- Встроенные механизмы безопасности — ограничение случаев выхода за высоту мира или чрезмерных затрат производительности.
- Обратная связь с игроком — в чате отображаются выражение, название блока, время выполнения и координаты начала.
- Пользовательские функции — определяйте и переиспользуйте свои математические функции командой
/customfunction.
🧩 Требования
- Версия Minecraft: 1.21.1 (NeoForge)
- Версия NeoForge: 21.1.176 или выше
📦 Установка
- Скачайте последний JAR-файл с Modrinth или GitHub Releases.
- Поместите его в папку
modsвашего Minecraft. - Убедитесь, что установлен NeoForge, и запустите игру.
- Начинайте строить графики функций или запускать функциональные снаряды!
⚖️ Правовая информация
Этот мод распространяется под лицензией GNU General Public License v3.0.
Ты можешь свободно использовать, изменять и распространять его, но свои изменения обязан публиковать под той же лицензией GPLv3.
Подробности в файле LICENSE.
🔗 Полезные ссылки
Частые вопросы
Как установить Math Function?
Установите NeoForge под свою версию Minecraft, скачайте Math Function под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Math Function?
У Math Function есть сборки для Minecraft 1.21.1.
Нужен ли Math Function на сервере?
Нужен и в игре, и на сервере