Отображение координатной сетки и маркеров на глобусе в UnityC#

Место общения программистов C#
Ответить
Anonymous
 Отображение координатной сетки и маркеров на глобусе в Unity

Сообщение Anonymous »

Пожалуйста, помогите мне с моделью Земли в Unity. Я не понимаю, в чем дело.
Я скачал текстуру синего мрамора с сайта НАСА, прикрепил ее к материалу и поместил на сферу.
Я хочу отобразить сетку координат на глобусе и добавить маркеры. Я создал префаб для маркера и материал для параллельных и меридианных линий.
Преобразования координат:

Код: Выделить всё

  public static (float lat, float lon) XYZToLatLon(Vector3 point, float radius)

{
Vector3 normalized = point.normalized;

float lat = Mathf.Asin(normalized.y) * Mathf.Rad2Deg;

float lon = Mathf.Atan2(point.z, point.x) * Mathf.Rad2Deg;

if (lon > 180f) lon -= 360f;
if (lon < -180f) lon += 360f;

return (lat, lon);

}
public static Vector3 LatLonToXYZ(float lat, float lon, float radius)
{
float latRad = Mathf.Deg2Rad * lat;
float lonRad = Mathf.Deg2Rad * lon;

float x = radius * Mathf.Cos(latRad) * Mathf.Cos(lonRad);
float z = radius * Mathf.Cos(latRad) * Mathf.Sin(lonRad);
float y = radius * Mathf.Sin(latRad);

return new Vector3(x, y, z);
}
Но у меня явно неправильное отображение. Например, Ирландия расположена выше 60-й параллели, и размещение там маркера дает координаты (62; - 8). Ошибка почти 10 градусов, хотя маркер на 0;0 отображается правильно.
Изображение

С чем это связано, что я сделал не так?

Подробнее здесь: https://stackoverflow.com/questions/798 ... e-in-unity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»