Каких размеров Селестия и как далеко она находится | Genshin Impact
Пожалуй каждый, кто играл в Genshin Impact замечал парящий архипелаг на западе от Монштадта. Эти острова - Селестия, место где живут (или могут жить) архонты, боги истоков и обычные боги. И несмотря на то, что она находится за пределами карты, а также расположена выше любого объекта в Тейвате, её размеры, высоту над уровнем моря и расстояние до неё можно измерить, а точнее вычислить. Об этом и будет этот пост. Ну а для тех, кто хочет сразу же получить ответ - держите картинку со всем, что будет вычислено далее
Ну а теперь приступим к самим вычислениям. Для измерений будет использоваться 2 точки: одна в Монштадте, на голове статуи анемо-архонта, другая возле логова Ужаса Бури. Точки эти находятся приблизительно на одной с Селестией прямой, поэтому погрешность при измерении будет несущественная. Вот эти самые точки: маркер игрока - точка в Монштадте, метка возле логова Двалина - 2 точка
Для начала стоит определить, какие данные у нас есть. Во-первых, мы знаем расстояние между этими точками. Определить его легко: сначала при помощи метки задания определяем масштаб карты, а затем измеряем расстояние между точками замера. Я это делал линейкой (если точнее - рейсшиной) и калькулятором. Также мы можем измерить угол над горизонтом для Селестии (для простоты понимания такая аналогия: у нас есть 2 луча, начала которых образуют угол, мы можем крутить этот угол (т.е. менять его значения), и вот когда один луч будет смотреть ровно в горизонт, а второй - в Селестию, то это и будет угол над горизонтом). Измерить его можно по Солнцу. Так как угол падения солнечных лучей изменяется +- линейно, то, зная время, когда Солнце находится ровно за Селестией, можно определить, какой угол у Селестии над горизонтом. По картинке ниже вы можете понять, как я это делал (в Монштадте Солнце было позади Селестии в ~16:30, возле логова - ~16:00)
Еще можно измерить угловой размер Селестии, но об это позже
И так, у нас есть необходимые данные: расстояние между точками замера 1289,6 м, угол над горизонтом в Монштадте ~22,5°, возле логова Ужаса Бури ~30°.
Теперь можно начинать рассчитывать расстояние до этогих парящих островов. И в этом нам поможет тригонометрия. Итак построим треугольник ABC, где A - первая точка замера, B - вторая точка замера, C - Селестия
Пожалуй, объяснять, как были определены углы ACB и ABC нет смысла, это и так понятно. А теперь вспомним немного тригонометрии, а точнее - теорему синусов. Дальнейшие вычисления - картинка из ворда, к сожалению Пикабу не дает написать обыкновенную дробь
АС - расстояние от Монштадта до Селестии по прямой. Теперь мы можем определить, на какой высоте находится Селестия и сколько нужно идти по земле, чтобы оказаться ровно под нею. Для этого проведем высоту CH к прямой AB. Мы получим прямоугольный треугольник.
Так как нам известен один из углов при гипотенузе и длина гипотенузы, то используя синус и косинус можно найти оба катета. И сейчас вы могли заметить, что длина высоты CH не равна той высоте, которая была указана на картинке в начале поста. Но на самом деле к найденной высоте нужно прибавить высоту над уровнем воды для точки замера (значение этой высоты я определял на глаз, поэтому она имеет значительную погрешность, однако при таких относительно больших расстояниях эта погрешность не оказывает значительного на точность результата)
А теперь приступим к измерению размеров Селестии. Для этого нужно узнать ее угловой размер. А как его измерить? В Genshin Impact FOV равен 90°, при этом по краям изображение искажается не сильно, что нам на руку. Измерим длину монитора (длину изображения на мониторе) и длину изображения Селестии. Поскольку искажением изображения по краям можно пренебречь, построим треугольники VMS и VKS и составим уравнения (D - длина изображения Селестии, L - длина монитора)
И так, угловой размер Селестии (при взгляде из Монштадта) равен 2*∠SVK = 11,08°. Ну и теперь приступим к последнему построению за этот пост. Нам нужен прямоугольный треугольник ABC (D - размер Селестии, можно сказать ее диаметр, α - угловой размер Селестии)
Итак, теперь мы знаем как далеко находится Селестия и каких она размеров. И подытожить все проделанные вычисления можно картинкой из начала поста. Стоит отметить, что если она будет добавлена в игру как локация, то скорее всего будет схожа с подземельями: снаружи небольшие, внутри огромные. Но так или иначе Селестия - самый крупный населенный пункт (если так его можно назвать) из доступных, и при этом она не так уж сильно удалена от нас (например Инадзума находится в более чем 6 км от Монштадта)
Ну и на этом все, пишите свои способы вычислить расстояние до нее (если этим вообще кто-то занимается или занимался)
Знатоки видеоигр и геометрии прошу о помощи
Видел я как то отрывок видео, уже не помню где, там была игра с необычным геймплеем, главный герой был с фотоаппаратом, делая снимок, его можно было повернуть по горизонтальной оси, как при кадрировании фото, игра очень похожа на Superliminal, так вот, если кто знает хоть что нибудь об этом продукте, прошу подсказать как его найти, да инфы мало, но это все что помню, очень уж люблю такое необычное видение мира автором, заранее смпасибо.
Fail story: Пифагоров велосипед.
Приветствую тебя, читатель. Сегодня я начну небольшой цикл заметок о разработке своей очень простенькой, по факту, игры. Делал я её не то что бы очень долго, ибо c# и unity я знаю более менее. Сегодня чуток о мат. части, но для начала немного предыстории. Я не очень часто сталкивался с подобными задачами, чаще занимаясь проектированием всякого: мои отношения с математикой обычно начинались и заканчивались на олимпиадном программировании, которое я подзабросил пару лет назад. Но при этом мне всегда было интересно поведение алгоритмов, созданных мною. Ну да чуть ближе к сути.
Для игры мне потребовалось решить простую задачу: требуется написать функцию, которая выдает следующую ближайшую к цели точку так, чтобы траектория движения персонажа проходила по прямой. Однако задачу я себе решил слегка усложнить, оставив в качестве входных переменных только позицию игрока и точку назначения. Повторюсь, что ожидаемый результат - движение по прямой, насколько это возможно. Подумав, не подумав, что задача плёвая, я наскоро закодил первый пришедший в голову алгоритм, в котором вычислялись расстояния до точки назначения от (x+1;y) и (x;y+1), где (x;y) - координаты персонажа(для упрощения опустим подробности, что точка назначения может быть не только в первой четверти относительно игрока), после чего брала точку с минимальным расстоянием. Казалось бы: почему это может не работать. А вот, собственно, почему:
Затем я решил завязать движение на углах, вычисляемых через арктангенс, между теми же ближайшими точками и желаемой траекторией, брав меньший из них.
Задавшись тем же вопросом: а почему это может не работать, я закодил и это поведение и получил вот это:
На этом этапе я перестал верить в жизнь и ушёл в запой (какао - тоже алкоголь). Однако вернувшись я прошёлся итеративно по алгоритму с понял, что в никуда потратил день жизни, и без задания координат точки отправления задача не разрешима. Затем все стало куда проще - поведение стало таким, каким я себе его представлял изначально:
По сути это та же предыдущая реализация со сравнением углов, только не от текущей точки, а от точки отправления.
Мораль сей басни такова: solid, kiss, scrum, agile и прочие заморские термины безусловно полезны для любой разработки, но все-таки на codeforces для разминки периодически все же надо заходить, что я всем и советую делать. Впрочем, если кто знает способ решения задачи, не вводя дополнительные параметры - прошу в комментарии.
P.S. Сама игра на поздней альфе, если кому интересно - дам ссылку в следующих заметках.
P.P.S. Первопост, прошу кидаться исключительно мягкими камнями.
Геометрические построения
Игра, в которой требуется при помощи простейших чертежных принадлежностей построить различные геометрические объекты.
P.S. если интересно могу запилить посты, как проходится тот или иной уровень
Готовы к Евро-2024? А ну-ка, проверим!
Для всех поклонников футбола Hisense подготовил крутой конкурс в соцсетях. Попытайте удачу, чтобы получить классный мерч и технику от глобального партнера чемпионата.
А если не любите полагаться на случай и сразу отправляетесь за техникой Hisense, не прячьте далеко чек. Загрузите на сайт и получите подписку на Wink на 3 месяца в подарок.
Реклама ООО «Горенье БТ», ИНН: 7704722037