Правила
Новые идеи рассматриваются администрацией и могут быть приняты в разработку после обсуждения в Сенате, Конгрессе или ВМС.
Уважаемые пользователи,
Сейчас формулы дистанций следующие (при вычитании берётся модуль результата):
Расстояние при перелёте между галактиками:
([галактика назначения] - [галактика старта]) *20000
Расстояние при перелёте между системами
([система назначение] - [система старта]) * 5 * 19 + 2700;
Расстояние при перелёте между планетами в 1 системе
([планета назначения] - [планета старта]) * 5 + 1000;
в остальных случаях дистанция = 5
Время полёта (в секундах):
Внутри системы:
10 + (35.000 / [%скорости] * ((1.000.000 + [количество планет] * 5.000) / [скорость]) ^ 1/2)
Между системами:
10 + (35.000 / [%скорости] * ((2.700.000 + [количество систем] * 95.000) / [скорость]) ^ 1/2)
Между галактиками:
10 + (35.000 / [%скорости] * ((([количество галактик]) * 20.000.000) / [скорость]) ^ 1/2)
Несколько особенностей, связанных с расстоянием:
При перелёте между системами, позиции планет не влияют на дальность и время полёта.
То же касается и систем при перелёте между галактиками.
В связи с этим, полёты через 184 систем и больше длятся дольше, чем перелёт в соседнюю галактику.
Полёт через 394 системы и больше длятся дольше, чем полёт в соседнюю галактику с возвратом.
Поэтому при перемещении флота дальше чем за 393 системы выходит быстрее лететь на колонию в соседней галактике, а оттуда \"возвращаться\" на колонию в изначальной галактике, которая удалена от первой планеты на 394 системы и больше.
Таким образом, мы всегда знаем координаты старта флота, координаты финиша и время полёта. Ситуация осложняется искривлённостью пространства.
Как правильно высчитать местонахождение флота с точностью до системы в любой точки полёта?
Мы имеем некоторое представление о том, как это сделать, однако среди наших игроков есть математики и программисты, которые могут предложить лучший вариант расчёта. Если у вас есть идеи формул - просим их опубликовать и помочь нам с выбором лучшей.
Сейчас формулы дистанций следующие (при вычитании берётся модуль результата):
Расстояние при перелёте между галактиками:
([галактика назначения] - [галактика старта]) *20000
Расстояние при перелёте между системами
([система назначение] - [система старта]) * 5 * 19 + 2700;
Расстояние при перелёте между планетами в 1 системе
([планета назначения] - [планета старта]) * 5 + 1000;
в остальных случаях дистанция = 5
Время полёта (в секундах):
Внутри системы:
10 + (35.000 / [%скорости] * ((1.000.000 + [количество планет] * 5.000) / [скорость]) ^ 1/2)
Между системами:
10 + (35.000 / [%скорости] * ((2.700.000 + [количество систем] * 95.000) / [скорость]) ^ 1/2)
Между галактиками:
10 + (35.000 / [%скорости] * ((([количество галактик]) * 20.000.000) / [скорость]) ^ 1/2)
Несколько особенностей, связанных с расстоянием:
При перелёте между системами, позиции планет не влияют на дальность и время полёта.
То же касается и систем при перелёте между галактиками.
В связи с этим, полёты через 184 систем и больше длятся дольше, чем перелёт в соседнюю галактику.
Полёт через 394 системы и больше длятся дольше, чем полёт в соседнюю галактику с возвратом.
Поэтому при перемещении флота дальше чем за 393 системы выходит быстрее лететь на колонию в соседней галактике, а оттуда \"возвращаться\" на колонию в изначальной галактике, которая удалена от первой планеты на 394 системы и больше.
Таким образом, мы всегда знаем координаты старта флота, координаты финиша и время полёта. Ситуация осложняется искривлённостью пространства.
Как правильно высчитать местонахождение флота с точностью до системы в любой точки полёта?
Мы имеем некоторое представление о том, как это сделать, однако среди наших игроков есть математики и программисты, которые могут предложить лучший вариант расчёта. Если у вас есть идеи формул - просим их опубликовать и помочь нам с выбором лучшей.
12 Июля 2010 15:34:01
Цитата: VasyaMalevich
Летим из [1:1] в [2:1]
Первые 50% времени полёта мы будем находится в [1:1], вторые в [2:1]
Первые 50% времени полёта мы будем находится в [1:1], вторые в [2:1]
слишком "стационарные координаты", слишком легко перехватить.
нелинейный вариант
летим из [x1:y1:z1] в [x2:y2:z2]. в галактике 499 систем, в каждой 15 планет
число планет, которые пролетает корабль:
S = abs(x1-x2)*499*15 + abs(y1-y2)*15 + abs(z1-z2)
делим время t на число точек(планет S), получаем временные интервалы, на которых за которые корабль меняет положение.
система не очень связана с понятием "расстояние" в нашей вселенной, зато однозначно задает координаты в любой момент пути и при этом обеспечивает довольно большую разбивку
полеты между галактиками - от 7 485 до 59 880 точек
полеты между системами - от 15 до 7 484 точек
полеты в системе - от 0(соседние планеты) до 14 точек
не бейте меня сильно, вообще то я противник данной идеи
14 Июля 2010 07:19:28
Цитата: Baal
когда координаты разные по всем измерениям(или хотябы по солнечной системе), то все относительно просто, можно придумать много моделей. но вот если по твоей схеме лететь с [1:133:1] на [2:133:1], сколько планет пересечет?
до 16 координаты в первой гале и с 16 до 1 во второй - 30 планет
14 Июля 2010 13:31:14
Den55Tiger,
маловато точек. например полет занимает 3-4 часа, то есть в каждой точке флот по 6-8 минут? при том что на перелет между системами 1 и 100(к примеру) получится больше 100 точек(если я правильно понял твою СИ)
маловато точек. например полет занимает 3-4 часа, то есть в каждой точке флот по 6-8 минут? при том что на перелет между системами 1 и 100(к примеру) получится больше 100 точек(если я правильно понял твою СИ)
14 Июля 2010 17:10:15
Я постараюсь быть краток, но я не думаю что у меня получиться...
Вот решение:
Представить галактики и системы в виде двухмерной матрицы. Где например по х - отложим системы а по у - галактики. Тогда мы сможем вычислить точное расстояние между 2умя координатами:
галактика/система отправления и галактика /система назначения. Дальше мы можем в той же системе на произвольных координатах поместить точку и нарисовать от неё(вычислить) окружность любого диаметра. Далее Вам всего лишь необходимо проверить есть ли общие точки Нарисованной окружности и Отрезка.
С планетами - оставляем то что было.
Примечание: Расстояние от одной галактики, или системы до другой может быть изменяемым, при просчётах .
В этой системе есть как достоинство так и недостатки. Достоинство в её простоте и при правильном продумывании некоторой масштабности, в том числе можно сделать и перехват и мозг(примечание: промежуточные результаты можно кешировать если эффект предположительно длительный).
Недостатки в Простой ловле.. поставил в систему Протосовского ловца, и ВСЁ что пролетело через систему твоё (когда делается перелёт между планетами в системе можно откорректировать начальные подсчёты чтобы флот не ловился при переброски с одной планету на другую в одной системе). Можно сделать так-же не ловлю пролетающего флота а ловлю флота который прибыл в систему назначения.
Можно добавить переменную Планет, получиться всё более тяжеловато, хотя по сути та-же матрица, только с ветвлениями на системах, но полёт как бы получается более точным.
Целесообразно (для производительности сервера) производить расчёты ловли и т. д. уже во время нажатие на кнопку ОТПРАВИТЬ
Матрицу можно потом "завернуть" с 2ух сторон системами и считать как быстрее флот сможет добраться куда-то.
Недостаток в том что полёт в соседнюю 1 систему или соседнюю галактику равен по расстоянию. Но, можно этот недостаток устранить, добавив дополнительные коэффициенты расстояний от 1 галактике к другой.
Чтобы точно узнать над чем пролетает флот необходимо вычислить отрезок пути который остался и проверить точку ПОЛЁТА сейчас на попадание в системы(не спрашивайте КАК но можно, читайте Пост скриптум внизу). Чтобы узнать Куда флот можно перенаправить от точки рисуем окружность вычисляемым диаметром(вычисляемым - это на сколько веспа осталось).
P/s Василий, объявите конкурс формул за Хайды, думаю тема была бы погорячее, и решение бы нашлось быстрее.
p/p/s Всё что выше, написано человеком, который может ошибаться. Все претензии по поводу формул - отклоняю т.к. не вижу смысла их писать без принятия самой идеи. Если Вы увидели ОШИБКУ скажите где и в чём она заключается.
Если надо будет я всё могу детально расписать. Но есть одно "НО" я могу только примерно предполагать как работает икскрафт, и судя по этим предположениям я предложил решение.
р/р/р/s Забыл сказать, я предположил что Флоты всё -таки летают по прямой от точки старта до точки назначения.
С уважением
Вот решение:
Представить галактики и системы в виде двухмерной матрицы. Где например по х - отложим системы а по у - галактики. Тогда мы сможем вычислить точное расстояние между 2умя координатами:
галактика/система отправления и галактика /система назначения. Дальше мы можем в той же системе на произвольных координатах поместить точку и нарисовать от неё(вычислить) окружность любого диаметра. Далее Вам всего лишь необходимо проверить есть ли общие точки Нарисованной окружности и Отрезка.
С планетами - оставляем то что было.
Примечание: Расстояние от одной галактики, или системы до другой может быть изменяемым, при просчётах .
В этой системе есть как достоинство так и недостатки. Достоинство в её простоте и при правильном продумывании некоторой масштабности, в том числе можно сделать и перехват и мозг(примечание: промежуточные результаты можно кешировать если эффект предположительно длительный).
Недостатки в Простой ловле.. поставил в систему Протосовского ловца, и ВСЁ что пролетело через систему твоё (когда делается перелёт между планетами в системе можно откорректировать начальные подсчёты чтобы флот не ловился при переброски с одной планету на другую в одной системе). Можно сделать так-же не ловлю пролетающего флота а ловлю флота который прибыл в систему назначения.
Можно добавить переменную Планет, получиться всё более тяжеловато, хотя по сути та-же матрица, только с ветвлениями на системах, но полёт как бы получается более точным.
Целесообразно (для производительности сервера) производить расчёты ловли и т. д. уже во время нажатие на кнопку ОТПРАВИТЬ
Матрицу можно потом "завернуть" с 2ух сторон системами и считать как быстрее флот сможет добраться куда-то.
Недостаток в том что полёт в соседнюю 1 систему или соседнюю галактику равен по расстоянию. Но, можно этот недостаток устранить, добавив дополнительные коэффициенты расстояний от 1 галактике к другой.
Чтобы точно узнать над чем пролетает флот необходимо вычислить отрезок пути который остался и проверить точку ПОЛЁТА сейчас на попадание в системы(не спрашивайте КАК но можно, читайте Пост скриптум внизу). Чтобы узнать Куда флот можно перенаправить от точки рисуем окружность вычисляемым диаметром(вычисляемым - это на сколько веспа осталось).
P/s Василий, объявите конкурс формул за Хайды, думаю тема была бы погорячее, и решение бы нашлось быстрее.
p/p/s Всё что выше, написано человеком, который может ошибаться. Все претензии по поводу формул - отклоняю т.к. не вижу смысла их писать без принятия самой идеи. Если Вы увидели ОШИБКУ скажите где и в чём она заключается.
Если надо будет я всё могу детально расписать. Но есть одно "НО" я могу только примерно предполагать как работает икскрафт, и судя по этим предположениям я предложил решение.
р/р/р/s Забыл сказать, я предположил что Флоты всё -таки летают по прямой от точки старта до точки назначения.
С уважением
19 Июля 2010 00:26:53
«
· Новые идеи ·
»
Информация
Вы не авторизованы
2 чел. читают эту тему (гостей: 2)
Пользователей: 0 Claude Bot