|
Вот формула сырого азимута здесь,
- HSg тулфейс;
- INC – угол(зенит)
Есть пару нюансов: первое угол и тулфейс в формулу подставлять нужно не в градусах а в радианах, второе так как азимут определен от 0 до 2пи т.е. 0 – 360, а функция арктангенс на интервале от -пи/2 до +пи/2(от-90 до 90), то получив результат его необходимо подкорректировать.
Вот код корректировки результата (если программировал когда-нибудь поймешь)
public double RadToAngleAzi(double d, double bY, double bXx)
{
// bY = (Bx * Math.Sin(gtf) + By * Math.Cos(gtf));
// bXx = -(Bx * Math.Cos(gtf) - By * Math.Sin(gtf)) * Math.Cos(inc) + Bz * Math.Sin(inc);
d = d * radToAngle; // d – полученный выше азимут(в радианах), в этой строке я его перевожу в градусы
if (bY / bXx > 0)
{
if (bXx > 0)
d = 180 + d;//2 3 четверть
if (bXx < 0)
d = 0 + d;//3 4 четверть
}
if (bY / bXx < 0)
{
if (bXx > 0)
d = 180 + d;//1 2 четверть
if (bXx < 0)
d = 0 + d;//1 4 четверть
}
if (d < 0) d = 360 + d;
return d;
}
Дата добавления: 2015-09-28; просмотров: 27 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
О Положении о Молодежном | | | 50 СИЛЬНЫХ привычек - для Счастливой Жизни! |