Правила

Новые идеи рассматриваются администрацией и могут быть приняты в разработку после обсуждения в Сенате, Конгрессе или ВМС.
9

Изменение системы расстояний., Труъ идея.

Группа guest
Итак, помнится мне уже писал я такие предложение в какой-то теме, месяца 4 назад, но найти не могу, потому, походу, прийдется с нуля писать.

Итак, для начала приведу текущее положение дел:
Минимальное расстояние 3000. Расстояние между планетами 50. Расстояние между системами 500. Расстояние между рукавами 2000.

Теперь что я предлагаю.
Во-первых - закольцевать рукава - расстояние из 1:1 в 1:999 сделать равным 500 (как между соседними системами) и т.п., думаю все поняли что я имею ввиду.
Выглядеть это будет так:
Изменение системы расстояний.







































Пусть точка B - система 1:1 например, тогда точка K - примерно 1:200, точка С - 1:500, точка L - примерно 1:750. Точка A - 2:1, точка N - примерно 2:200 и т.д.. Кроме того, ОЧЕНЬ рядом с точкой B находится система 1:999 (а именно чуть ниже и левее, если смотреть на рисунок).

Это предложение довольно логично, и решит проблему очень большого расстояния между 1:100 и 1:900, например.

Во-вторых. Это самое интересное. Предлагаю сделать возможным пролетать не по линии окружности, то-есть пролетая все системы между системой отправления и системой назначения, а внутри окружности. На рисунке выше - имеется ввиду возможность перелета из L в K по прямой LK, или, например, из B в C по почти (почему почти, объясню позже) диаметру BC.
Основываться эта новая система расстояний будет на текущих. Как вы понимаете, для начала нужно рассчитать диаметр этой окружности. Включив мозг, мы понимаем, что для системы 1:1 диаметрально противоположной является "как-бы система" 1:500,5, а не 1:500, как можно было-бы подумать. Тогда расстояние до этой "как-бы системы" равно диаметру, который нам надо посчитать.

Итак. В текущей системе расстояний расстояние от 1:1 до 1:500,5 по линии окружности равно 499,5*500 = 249750. (Тут, кстати, еще заметим, для итоговой формулы, что длинна полуокружности - 499,5 расстояний между системами)
Из геометрических соображений диаметр данной окружности в пи/2 раз меньше расстояния по окружности, то-есть он составляет 249750/(пи/2) ~= 158995,788. Радиус равен половине диаметра: R = 158995,788/2 = 79497,894.
Данную величину (при вводе данной идеи, разумеется, можно данную величину округлить до 79500) будем считать "константой радиуса рукава". Все расчеты будут зависеть от нее, и, соответственно, при каком-либо изменении баланса будет писаться не "расстояние между системами уменьшено с 500 до 400", а "радиус рукава уменьшен с 79500 до 63600". Хотя для игроков, конечно, понятнее будет формулировка "уменьшен на 20%", которую и следует использовать.

Все, основная идея высказана, теперь займемся проблемой расчета расстояний между различными системами, для этого обратимся к формуле зависимости длинны хорды от центрального угла, опирающегося на эту хорду:
L=2* R * sin(a/2);
где L - искомое расстояние между системами (хорда окружности), R - радиус рукава, a - центральный угол, опирающийся на искомую хорду. Последнюю величину мы так-же не знаем, вот ее формула (обычные очевидные соображения):
a = ( пи / 499,5 ) * Δ;
где a - искомый угол, пи ~= 3,14, Δ - разница систем по линии окружности. Последняя величина требует пояснения, мне сложно объяснить ее смысл в теории, я воспользуюсь приведением примеров:
разница систем по линии окружности (далее Δ) от системы 1:1 до системы 1:5 равна 4;
Δ от системы 1:200 до системы 1:300 равна 100;
Δ от системы 1:1 до системы 1:500 равна 499...
И вот тут мы сталкиваемся с проблемой - ведь по первому пункту данной идеи Δ от системы 1:1 до системы 1:999 равна 1 (а до системы, например, 1:950, она равна 50). Для того, что-бы посчитать такую сложную переменную, нашим дорогим разработчикам придется ужас! сооружать в коде конструкцию вида if (?) then (...) else (...). Это, несомненно, непосильный труд, потому постараемся упростить предыдущие две формулы путем вложения второй в первую, авось что-нибудь прояснится:

L=2* R * sin( ( пи/499,5 ) * Δ/2);
L=2* R * sin( пи / (999/Δ) );
Итак, путем равносильных преобразований (Δ ≠ 0) мы пришли к выводу - аргументом синуса является отношение (пи) к (999/Δ). И что мы видим - из-за того, что функция синуса такая прекрасная зеркально ведет себя что при увеличении аргумента с 0 до (пи/2), что при уменьшении с (пи) до (пи/2), мы можем переменную Δ рассчитывать просто как модуль разности между системами! То-есть для нас вообще не важно Δ = 1 или Δ = 998, результат будет одинаков (так-же неважно, Δ = 949 или Δ = 50, и т.п.).
Итак, как мы поняли,
Δ = |S1 - S2|;
где S1 - система отправления, S2 - система назначения, | | - знак модуля.
И итоговая формула принимает вид:
L=2* R * sin( пи / (999/ |S1 - S2| ) );
Все!
Теперь обобщу - я предлагаю заменить текущую формулу расстояний между системами, которая выглядит так:
L = |S1 - S2| * 500;
на, по моему мнению, лучшую формулу:
L = 2* R * sin( пи / (999/ |S1 - S2| ) );
где R ~= 79500 (точнее 79497,894 , но лучше округлить при вводе, можно даже до 80000, там разница копеечная) .
Теперь немного графиков, они красиво показывают, зачем все это надо (на графике R ~= 79497,894):
Изменение системы расстояний.













































Я еще раз подчеркну, что сильное различие в правой части графика обусловлено лишь закольцовыванием рукавов, а так разница, в действительности, не высока. Однако закольцовывание - несомненно нужное нововведение, этого баланс просто требует. Цель графика - дать понять, что кроме закольцовывания нужно и изменить формулу расстояний между системами (я замечу, что по-сути ВОООБЩЕ КОД МЕНЯТЬ НЕ НАДО. Просто в одном месте отредактировать формулу (как я себе представляю), может в 2-3 местах. Главная переменная (модуль разницы систем) остается той-же. R - не переменная, а константа.
Кроме того, график дает понять, что пока разница между системами отправления и назначения меньше 200 - разницы в расстоянии вообще особо не будет. Зато при полете в диаметрально противоположную точку рукава формула существенно (в (пи/2) ~= 1,57 раз) уменьшит расстояние, что очень логично.

В заключение хочу добавить, что, по моему мнению, если Вася тщательно вчитается в текст, он поймет что это нужная фишка. Она никак не повлияет на ближние полеты, зато позволит игрокам, находящимся далеко друг от друга (например новичек в 11:900 и его учитель в 7:100) плодотворно сотрудничать. Я верю и надеюсь, что идея будет введена а я получу медальку первого класса ^^ , много ведь текста накатал

Забыл добавить - расстояния в другие рукава будут как и раньше считаться по Пифагору, ничего нового.

И без флуда, позязя)

Upd: если ВДРУГ в текущем коде Δ = |S1 - S2| может быть равно нулю - можно перевернуть дробь внутри синуса, для того что-бы не возникала ошибка "деления на ноль". А именно для этого случая формула принимает вид:
L=2* R * sin( пи * |S1 - S2| / 999 );
тогда синус равен нулю, и разница систем, что логично, так-же равна нулю (при S1 = S2, я просто не знаю как у вас там в коде реализован рассчет расстояний).
Upd2: чуть подредактировал в одном месте, по-сути ничего не изменилось. (23:00 мск).

Upd3:
1) Я не против что-бы просто ввели закольцованность, не вводя второй пункт данной идеи!
2) И еще, тут были вопросы по поводу работы Алл.Сетей. Я, кажется, придумал как это реализовать.
Территория альянса будет представлять из себя сектора круга - центр сектора в центре рукава, а прямые, являющиеся границами сектора, приходят из центра рукава в границы Территории на окружности.
Масштабирование этой системы на цилиндр не сложно.
В рассчетах Алл.Сети ничего не изменится - просто "представлять" Алл.Сеть можно будет не как "территорию на 2-мерной поверхности" а как "набор секторов круга в 3-мерном пространстве". Очень красиво, если представить. И, кстати, очень логично выглядит. Да, вообще супер! Пойду Васе скину в личку, и добавлю в шапку.
Картинка:
Изменение системы расстояний.




Тут сектор ABO - территория альянса в 1 галактике (то-есть на дуге AB все системы принадлежат альянсу), а сектор A1B1O1 - территория альянса во 2 галактике. Если во 2 галактике территория альянса меньше, то прямые AA1 и BB1 будут сужаться к плоскости 2 галактики. Красиво? Вроде очень. И логично же!
И трехмерная вселенная!




Upd4:
http://xcraft.ru/forum/topic_15520/4#post-412179 Хорошая картинка, объясняющая территорию Альянсовой Сети.
3 Июля 2014 22:48:58
3 Июля 2014 22:48:58
Репутация 416
Группа humans 131 25 216 Сообщений 1047
MISHEL0,

Поддерживаю, так же это неоднократно предлагал.
3 Июля 2014 22:51:04
3 Июля 2014 22:51:04
Группа guest
Мне нравится, программеры оцените. Отзовитесь.
3 Июля 2014 22:51:11
3 Июля 2014 22:51:11
Группа guest
Вчера читал наброски этой темы .

ЗА всеми руками,ногами и еще заставлю пару рабов тоже голосовать за это.
3 Июля 2014 22:51:13
3 Июля 2014 22:51:13
Группа guest
Цитата: MISHEL0
Она никак не повлияет на ближние полеты, зато позволит игрокам, находящимся далеко друг от друга (например новичек в 11:900 и его учитель в 7:100) плодотворно сотрудничать.

Ты думаешь васе это надо?
Тема такая - сиди копай ,офиков покупай!
3 Июля 2014 22:53:59
3 Июля 2014 22:53:59
Группа guest
Пили голосовалку и пусть наверное ктото в ВМС запилит
3 Июля 2014 23:04:48
3 Июля 2014 23:04:48
Группа guest
поддерживаю! автора в разрабы надо!!!!
3 Июля 2014 23:05:10
3 Июля 2014 23:05:10
Группа guest
+ отличная идея
3 Июля 2014 23:05:54
3 Июля 2014 23:05:54
Группа guest
Шикарная идея! Админы обратите внимание, хоть что-то полезное от вас будет.
3 Июля 2014 23:07:18
3 Июля 2014 23:07:18
Репутация 1105
Группа xerj 97 45 199 Сообщений 8578
если будет перенос планет(5 с половиной), удешевление луноделия,полет сушки по диагонали, зделают скупщека лома фсем расам в 90%,устранят баги ,обьявят Дюка главным геем и т.п и т.д,вощем вернут фсё в зад... то я канешнаж за :lol:
3 Июля 2014 23:11:23
3 Июля 2014 23:11:23
Группа guest
Однозначный плюс.
Всегда восхищался этим человеком.
3 Июля 2014 23:23:18
3 Июля 2014 23:23:18
Группа guest
Отлично! закольцевание систем и я предлагал! Но насколько я знаю никто еще не додумался до варианта расположения систем в большой окружности!
Красава! + В репу!
3 Июля 2014 23:25:07
3 Июля 2014 23:25:07
Группа guest
Цитата: Vovadrik
Пили голосовалку

Судя по первым комментариям, голосовалка лишняя. Она лишь отсеет тех, кто до конца не дочитал.
А вот в ВМС - буду не против если кто-нибудь запилит, со ссылочкой на эту темку, дабы текст не дублировать.
Просто если в ВМС примут - вероятность того, что это введут, возрастает в разы.
Ведь основная проблема этой идеи в том, что в ней надо разобраться, или хотя бы прочитать. А так-то ввести ее очень просто - никаких лишних кнопочек, просто формулу поменять в нескольких местах.
3 Июля 2014 23:25:41
3 Июля 2014 23:25:41
Группа guest
дак никто не будет сидеть калькулятором и считать вручную. главное чтоб разобрались разработчики!
3 Июля 2014 23:30:47
3 Июля 2014 23:30:47
Группа guest
васе это переварить годы потребуются.. да и предпологаю если ему показать как начертить правильно цилиндр он параллелепипед начертит и будет утвержать что это цилиндр :recourse:
3 Июля 2014 23:40:33
3 Июля 2014 23:40:33
Группа guest
Цитата: Айнур_Сагдеев
васе это переварить годы потребуются

Повторюсь, что есть вариант "просто скопировать формулу и вставить в код". Само "введение" нововведения будет довольно простым.
3 Июля 2014 23:44:54
3 Июля 2014 23:44:54
Репутация 36
Группа humans Альянс OnlyOneTeam4Rever 131 17 31 Очков 9 535 819 Сообщений 1083
Цитата: MISHEL0
есть вариант "просто скопировать формулу и вставить в код"

ну ты загнул ваще просто, ты хоть думай о ком ты говориш и что:) :lol:
3 Июля 2014 23:49:07
3 Июля 2014 23:49:07
Группа guest
:smile: хорошо оформил, я тоже был за закольцовку системы
3 Июля 2014 23:49:09
3 Июля 2014 23:49:09
Репутация 473
Группа Konklav Альянс BATTLESTAR 186 68 166 Очков 43 118 816 Сообщений 2192
а че, мне нраица я за :smile:
3 Июля 2014 23:49:17
3 Июля 2014 23:49:17
Группа guest
мне тоже нравиться :smile:
+
3 Июля 2014 23:51:40
3 Июля 2014 23:51:40

Информация

Вы не авторизованы

1 чел. читают эту тему (гостей: 1)

Пользователей: 0 Claude Bot

Космическая онлайн стратегия Xcraft это бесплатная игра для алигархов. Пример боя >> Регистрация >> И космос весь ваш на тысячи лет...

2009 — 2524