В WE в редакторе триггеров среди встроенных функций есть некоторые математические функции. А что делать, если мне нужны более продвинутые и сложные функции, которые нельзя выразить через имеющиеся, есть ли какие-нибудь дополнения на эту тему?

CaptainFox, спрошу еще раз
CaptainFox, скажи, зачем тебе возможность знать поведение объекта в произвольной точке, если он в конкретный момент времени может находиться в одной конкретной точке и иметь одни конкретные скоростные характеристики? Всеравно ведь объект вынужден будет пройти по всей траектории и, соответственно, накопит все изменения. По сути это то-же самое числовое решение дифуры, только растянутое во времени. Потому то никто дифуры не решает для описания движения.
Результат будет один в один такой-же, а вычисления на порядок проще - куда проще вычислить следующую итерацию на основе текущего состояния чем решать диф. уравнения и брать интегралы.
И чтобы избежать очередного выхода на замкнутый круг напомню что ответ на твой первоначальный вопрос примерно таков:
CaptainFox, я тебе уже ответил на твой вопрос - все что есть в jass это предел. Подключение чего-то еще возможно через RTC или гримор и осуществляется по принципу инъекции dll библиотеки. О существовании готовых библиотек мне ничего не известно, но все они будут работать по тому-же принципу, даже если существуют. Что еще ты хочешь чтобы тебе ответили по первоначальному вопросу? Ссылку на статью о том как подключать свои библиотеки? Или, может, какой-то чудесный способ добавить несуществующий функционал без подключения библиотек? Или тебя интересуют готовые реализации интегрирования и прочей высшей математики на jass?
`
ОЖИДАНИЕ РЕКЛАМЫ...
22
Какой бы сложной ни была функция, даже если она не выражается через имеющиеся, но при этом речь идёт о вычислении её значений на конечном интервале, то её можно саппроксимировать на данном интервале и реализовать в виде собственной функции.
20
nvc123, например такая функция: Определённый интеграл с переменным верхним пределом (t) от функции Sin(x)/x (так же известной как синкус) по dx. если непонятно, вот картинка необходимой функции F(t):
Загруженные файлы
20
prog, меня попросили привести пример - я привёл. Этот пример далеко не единственный. Есть и другие примеры, связанные с интегрированием, в том числе - с получением в качестве результата неэлементарных функций, как в указанном примере. а нужно это всё для специальной системы движения.
24
CaptainFox, напоминаю что брать интегралы в аналитическом виде умеют только специализированные математические пакеты, все остальные решают эти задачи в численном виде, а в играх так и вовсе таких вычислений по возможности избегают т.к. это совершенно избыточные вычисления - более простые функции дают результат не хуже, а считаются куда проще.
Таким образом, я бы советовал не сильно заморачиваться, пытаясь выпендриться знанием интегралов и взять более простые функции. Ну а если совсем никак без интегралов - метод трапеций в помощь - более продвинутые методы для вара слишком сложно реализовать, да и достигаемая ими точность идет в никуда из-за ограничений точности чисел с плавающей точкой в варе.
20
prog, Движение задаётся дифференциальным уравнением, при решении которого нужно брать интеграл. Я в курсе, что брать их лучше численно, учитывая, что вид подынтегральной функции заранее не известен. До этого я и сам додумался. Вопрос был в том, можно ли использовать в варике функции свыше того, что заложено?
В смысле - в редакторе.
24
CaptainFox, да вы, сударь, знаете толк в извращениях. Все что доступно - есть в списке jass функций. Чего-то может не быть в GUI, но на этот счет я не уверен. Можно юзать RTC или другие способы подключения своих нативок, но тогда нужно писать библиотеку на C++, которую, соответственно, нужно будет подключать всем игрокам.
На последок скажу - бросайте эту гнилую идею, вар с трудом потянет такую интенсивность вычислений, а погрешность чисел с плавающей точкой сведет на нет все усилия. Такое если и делать, то на нормальных языках программирования.
20
prog, ну вообще-то вычисления тут не такие уж и затратные, ибо карта работает и не лагает. Ну, если конечно речь идёт о нормальном компьютере, а не о калькуляторе. А во-вторых, ничего извращённого тут нет - обычный физический подход к движению, а не чисто геометрический, как в большинстве ситуаций со стандартным вариком. Пока что я прибиваюсь к написанию собственных функций численного интегрирования, но может кто-нибудь придумает более рациональное решение.
Этот комментарий удален
24
CaptainFox, я не зря упомянул метод трапеций - он крайне прост в реализации, даже массивы не нужны, при том что дает сносную точность.
Что касается физического подхода к движению - он не случайно не используется - это масса вычислений, которые с тем-же успехом заменяются более простыми функциями, в частности полученными в результате решения все тех-же диф. уравнений, но один раз и на бумаге.
20
я не зря упомянул метод трапеций - он крайне прост в реализации
мне как то и прямоугольников хватает - это ещё проще, по порядку аппроксимации они одинаковые, разница лишь в сомножителе.
более простыми функциями, в частности полученными в результате решения все тех-же диф. уравнений, но один раз и на бумаге
к сожалению, есть такие дифуры, которые аналитически не решаются.
38
prog, Движение задаётся дифференциальным уравнением, при решении которого нужно брать интеграл
автор не шарит в программировании =(
20
ScorpioT1000, с чего это ты взял, интересно мне знать?
Я с таким же успехом могу заявить, что ты в физике не шаришь))
38
зато не юзаю интегралы в скриптовом движке 1998 года
20
ScorpioT1000, меня не волнует, что ты юзаешь, а что нет и на каком движке ты это делаешь. Если тебе нечего сказать по теме - просьба молчать.
И от скинутого видоса и системы вращения физику ты знать не стал
38
давай выкладывай конкретно, что ты хочешь увидеть в своем движении и я скажу, как это сделать (если офк не упираться и 100% исполнении результата именно по интегралу)
24
ScorpioT1000, ну так интегралы никто и не юзает без особой необходимости даже в современных системах - для движения всем хватает упрощенной модели, позволяющей n раз в секунду менять координаты объекта на основании его скорости, а также, при необходимости, менять скорость по формуле произвольной сложности. Я пытался подвести автора к этой мысли, но увы.
CaptainFox, скажи, зачем тебе возможность знать поведение объекта в произвольноц точке, если он в конкретный момент времени может находиться в одной конкретной точке и иметь одни конкретные скоростные характеристики? Всеравно ведь объект вынужден будет пройти по всей траектории и, соответственно, накопит все изменения. По сути это то-же самое числовое решение дифуры, только растянутое во времени. Потому то никто дифуры не решает для описания движения.
20
Мне кажется, что мы друг друга не понимаем. prog, ибо ты уже третий раз повторяешь одно и то же. Изначальный мой вопрос имел более общий характер: существуют ли дополнительные библиотеки\функции\программные средства и т.д. для задания и вычисления более замысловатых функций в WE. И взятие интегралов - лишь один частный пример, в котором мне это нужно.
38
тебя уже третий раз спрашивают, зачем тебе это нужно ...
20
тебя уже третий раз спрашивают, зачем тебе это нужно
ты имеешь в виду зачем мне нужны функции нестандартные или такая система движения? В прочем не важно - я уже отвечал выше на оба вопроса. Это во-первых, а во-вторых: я задал вопрос для того, чтобы ответ получить, а не фразу "зачем мне это нужно".
24
CaptainFox:
Мне кажется, что мы друг друга не понимаем. prog, ибо ты уже третий раз повторяешь одно и то же. Изначальный мой вопрос имел более общий характер: существуют ли дополнительные библиотеки\функции\программные средства и т.д. для задания и вычисления более замысловатых функций в WE. И взятие интегралов - лишь один частный пример, в котором мне это нужно.
Все что доступно - есть в списке jass функций. Чего-то может не быть в GUI, но на этот счет я не уверен. Можно юзать RTC или другие способы подключения своих нативок, но тогда нужно писать библиотеку на C++, которую, соответственно, нужно будет подключать всем игрокам.
CaptainFox, я тебе уже ответил на твой вопрос - все что есть в jass это предел. Подключение чего-то еще возможно через RTC или гримор и осуществляется по принципу инъекции dll библиотеки. О существовании готовых библиотек мне ничего не известно, но все они будут работать по тому-же принципу, даже если существуют. Что еще ты хочешь чтобы тебе ответили по первоначальному вопросу? Ссылку на статью о том как подключать свои библиотеки? Или, может, какой-то чудесный способ добавить несуществующий функционал без подключения библиотек? Или тебя интересуют готовые реализации интегрирования и прочей высшей математики на jass?
8
есть библиотеки для геометрии, есть имитация логарифма (не точная). насколько мне известно чего-то другого нет, да и просто это нафиг не нужно
для многого можно применить аппроксимацию с разной степенью потери точности, благо методов достаточно
22
к сожалению, есть такие дифуры, которые аналитически не решаются
Если речь идёт об уравнении движения и ты рассматриваешь объекты как материальные точки, то оно не будет иметь аналитического решения в том случае, если учитывается сопротивление воздуха, пропорциональное квадрату скорости. Ты что, решил сделать систему с учётом сопротивления воздуха? О_о о_О О_О
Чтобы оставить комментарий, пожалуйста, войдите на сайт.