Азимут на эллипсоиде от направляющего угла в плоскости карты
az = vinvtran(x,y,th)
az = vinvtran(mstruct,x,y,th)
[az,len] = vinvtran(...)
az = vinvtran(x,y,th)
преобразовывает угол в пробел проекции в точке, заданной x
и y
в угол азимута в географических координатах. Проекция карты, в настоящее время отображенная, используется, чтобы задать пробел проекции. Входные углы должны быть в тех же модулях, как задано текущей проекцией карты. Входные параметры могут быть скалярами или матрицами равного размера. Угол в углу пробела проекции th
задан как положительный против часовой стрелки от оси X.
az = vinvtran(mstruct,x,y,th)
использует проекцию карты, заданную входом struct
, чтобы вычислить проекцию карты.
[az,len] = vinvtran(...)
также возвращает длину вектора в географической системе координат. Значение 1 не указывает ни на какое искажение шкалы для того угла.
В то время как векторы вдоль оси Y всегда указывают на север в цилиндрической проекции в нормальном аспекте, они могут указать к востоку или к западу от севера на теории конических сечений, azimuthals, и других проекций. Эта функция вычисляет географический азимут для углов на спроектированном пробеле.
Демонстрационные вычисления:
axesm('eqdconic','maplatlim',[-10 45],'maplonlim',[-55 55]) gridm; framem; mlabel; plabel [x,y] = mfwdtran([0 0 0],[-45 0 45]); quiver(x,y,[ .2 .2 .2],[0 0 0],0) quiver(x,y,[0 0 0],[ .2 .2 .2],0)
vinvtran(x,y,[ 0 0 0]) ans = 57.345 90.338 124.98 vinvtran(x,y,[ 90 90 90]) ans = 331.99 0 28.008
Это преобразование ограничивается областью, заданной пределами кадра в текущем определении карты.
Географический угол азимута измеряется по часовой стрелке от севера. Угол пробела проекции измеряется против часовой стрелки от оси X.
Эта функция использует метод конечной разности. Географические координаты встревожены немного в различных направлениях и спроектированы. Небольшое количество ошибки введено численным расчетом производных и изменением параметров искажения карты.