Какова форма неба?

Я разработчик программного обеспечения, и я разрабатываю планетарий, и первое, чего я не знаю, это: какой формы небо?

Во-первых, я думал, что это полусфера, но в Интернете я нашел много уроков на YouTube, и все они рисуют полусферу, но сглаживают (вы можете поискать в Google и найти много уроков) .

Мой вопрос: как я могу представить небо в виртуальном трехмерном мире? Насколько мне нужно сгладить сферу, чтобы получить настоящее изображение неба?

Ваш вопрос имеет мало смысла в его нынешнем виде. Видимое небо — это, конечно, полусфера . То, как вы это представляете, зависит от того, на чем и с чем вы это представляете.
@ Роб Джеффрис: если вы наблюдаете, скажем, с самолета на высоте ⁓11 км (36 000 футов) над уровнем моря, то видимое небо заметно больше полушария. Вы можете видеть небо, а не землю до −3°20′ над уровнем моря – и обратите внимание, что «пренебрегать атмосферной рефракцией, которая расширяет видимость удаленных объектов еще ниже примерно на 40′».

Ответы (1)

Для компьютерного программного обеспечения самый простой способ взять сферу (и/или полусферу) и придать ей плоскую форму (обычно прямоугольник) — это равнопрямоугольная проекция (также известная как плоскость карре), потому что она имеет простейшую формулу связанные пиксели и координаты:

Икс знак равно ж × λ 360 + ш 2

у знак равно час × ф 180 + час 2

куда Икс и у точка пикселя, ж и час ширина и высота (в пикселях) прямоугольника вашей карты, λ это долгота в градусах и ф широта в градусах

Все это предполагает, что ваша карта помещает точку 0 долготы, 0 широты в центр. Другими словами, нулевой меридиан проходит по середине карты по вертикали, а экватор проходит по середине карты по горизонтали. Также предполагается, что север и восток положительны, а запад и юг отрицательны.

Обратите внимание, что вам даже не нужно брать синус или косинус чего-либо. Вот почему равнопрямоугольная проекция так проста. По сути, он просто берет долготу и широту и делает их Икс / у координата только со смещением. Смещение возникает из-за того, что обычно в компьютерном программировании начало координат находится в левом верхнем углу , а не в центре экрана.

Заметьте также, что я отрицал широту в у формула, потому что большинство компьютерных систем в 2D-координатах имеют положительную у направление вниз. Это противоположно стандартному графику в математике, где положительный у Продолжается.

В вашем случае долгота и широта на самом деле будут прямым восхождением и склонением соответственно. В основном это звездные координаты небесной сферы, а не наземные координаты жеоды.

Существует множество других картографических проекций , но равнопрямоугольная — самая простая.

Однако ваш вопрос немного расплывчатый, потому что вы упомянули «виртуальный трехмерный мир», но также спросили, сколько вам нужно, чтобы сгладить его. Если у вас уже есть 3D-модель сферы в компьютерной графике, вам вообще не нужно ее сглаживать. Вы просто рисуете 3D-модель (сферу) с текстурой на ней. Если вы хотите представить его в виде карты, то, конечно же, вам придется сгладить его, а равнопрямоугольная проекция — самый простой способ.

отличный ответ. действительно мило
В двух словах, я хочу сделать виртуальный планетарий, чтобы показать пользователю, что он может видеть в своем местоположении (как это делает стардроид). Как я могу показать звезды в зависимости от местоположения пользователя? Я обнаружил, что могу использовать полусферу, но при проверке кода stardroid я использую SkyBox. Вы можете проверить код здесь: code.google.com/p/stardroid .
Я также нашел этот вопрос: physics.stackexchange.com/questions/25774/creating-a-star-map