@CheLord

Как вернуться с угла atan2 обратно в координату?

При помощи atan2 и некотрых тригонометрических функций я ищу дистанцию между двумя gps координатами, но сейчас появилась цель вернуться назад к координатам. Помогите пожалуйста найти "х" и "у" которые в atan2.

final double RADIUS = 6372795;
		double a1 = 51.509069,a2 = 31.325302,b1 = 51.508628,b2 = 31.325986;
		double lat1,lat2,long1,long2;
		////////////////////////////////////////////
		lat1 = a1*Math.PI/180;
		lat2 = b1*Math.PI/180;
		long1 = a2*Math.PI/180;
		long2 = b2*Math.PI/180;
		System.out.println ("x1-"+lat1+" y1-"+long1);
		System.out.println ("x2-"+lat2+" y2-"+long2);
		
		///////////////////////////////////////////////
		System.out.println("косинусы и синусы широт и разницы долгот");
		
		double cl1 = Math.cos(lat1);
		double cl2 = Math.cos(lat2);
		double sl1 = Math.sin(lat1);
		double sl2 = Math.sin(lat2);
		
		System.out.println("косинусы "+ cl1+" "+cl2);
		System.out.println("синусы "+ sl1+" "+sl2);
		
		double delta = long2-long1;
		double cdelta = Math.cos(delta);
		double sdelta = Math.sin(delta);
		
		System.out.println("delta "+ delta+" "+cdelta +" "+sdelta);
		
		/////////////////////////////////////////////////////
		double y = Math.sqrt(Math.pow(cl2*sdelta, 2)+ Math.pow(cl1*sl2-sl1*cl2*cdelta, 2));
		double x = sl1*sl2+cl1*cl2*cdelta;
		
		double ad = Math.atan2(y, x);
		double dist = ad*RADIUS;
		System.out.println ("distanse - "+dist);
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 2
freeExec
@freeExec
Участник OpenStreetMap
Гуглить прямая геодезическая задача
Ответ написан
Комментировать
@Taus
Таких точек множество на сфере. Например, множество точек на сфере, равноудалённых от выбранной на dist ( = ad*RADIUS), будет окружностью.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы