# Эти ваши формулы и немного наглядных рисунков по телесайнсу.

**URL:** <https://forum.taucetistation.org/t/eti-vashi-formuly-i-nemnogo-naglyadnyh-risunkov-po-telesajnsu/4885>\
**Category:** Обмен опытом\
**Created:** [21.Ноябрь.2014 11:20:27 UTC](https://forum.taucetistation.org/t/eti-vashi-formuly-i-nemnogo-naglyadnyh-risunkov-po-telesajnsu/4885 "2014-11-21T11:20:27Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![shadence](https://forum.taucetistation.org/user_avatar/forum.taucetistation.org/shadence/32/218_2.png) [@shadence](https://forum.taucetistation.org/u/shadence)\
**Post date:** [21.Ноябрь.2014 11:20:27 UTC](https://forum.taucetistation.org/t/eti-vashi-formuly-i-nemnogo-naglyadnyh-risunkov-po-telesajnsu/4885/1 "2014-11-21T11:20:27Z")

</div>

Все переменные я обозначу буквами :  
B : bearing  
a : elevation  
P : power

```
    Px: power, ось х, горизонтальная скорость
    Py: power, ось у, вертикальная скорость

```

Названия граф оставил английскими для тех, кто не умеет в английский.  
В телесайнсе ось х и ось у полностью независимы, в отличии от GPS.  
х - абсолютная длина, а у это высота, на которую “поднимается” объект. Мы знаем, что идеальный угол броска какого-либо снаряда равен 45 градусам. Угол броска можно считать графу Elevation. От нее, вместе с графой Power, зависит то, как далеко/откуда телепортируется объект.  
Зная значение Elevation, мы можем найти Px и Py. Внизу нарисован “правильный” треугольник c гипотенузой Р, угол противоположен стороне Ру и смежен Рх:

```
          /|
         / |
       P/ |
       / |Py
      / |
     / |
    /a___|
       Px

```

Форум пишет как-то криво, получилось так. Представьте, что все это ровно.

Увидев это, мы можем найти отношение между этими переменными(наши любимые косинусы/синусы):  
Px = P_cos(a)  
Py = P_sin(a)  
Но это все начальные законы баллистики. Я не написал о том, что телепорт как пушка, а предмет как снаряд, скорость полета снаряда и дальность зависит от законов баллистики.  
Баллистическая траектория у телесайнса будет выглядеть примерно так:  
Средняя точка  
\*  
\* \*  
\* \*

```
                    * *                
                                                                   
                                                                   
               * *           
                                                                   
                                                                   
                                                                   
          * *      
                                                                   
                                                                   
                                                                   
     Точка запуска Точка приземления        
     * * 

```

Точка запуска - начало телепортации, точка прилета - завершенная телепортация.  
Средняя точка показывает время, сколько времени требуется для “взлета” объекта. Телепортация затрачивает время, да.  
Время телепортации полностью зависит от времени, требуемого объекту “вылететь” и “прилететь” из места запуска в место приземления. Теперь, “гравитация” равна 10 и телепорту сначала требуется “кинуть” объект и “приземлить” его, что удваивает время. Всмысле, требуется одно и тоже время для взлета и для приземления объекта.

```
    t: время
    t = 2*Py/10
      = 1/5 * Py

```

Также, пройденная горизонтальная дистанция это отдача х, скорость объекта остается той же самой весь путь:  
d: дистанция  
d = t \* Px = 1/5 \* Px \* Py  
= 1/5 \* P_cos(a) \* P_sin(a)  
= 1/5 \* P^2\*sin(a)cos(a)

```
    d = 1/10 * P^2*2sin(a)cos(a)
      = 1/10 * P^2*sin(2*a)

```

Формула “двух углов” радикально показывает, что нам нужно знать. Это работает на интуитивной основе, когда значение Elevation от 1 до 90. При значении Elevation 90 мы кидаем предмет ровно вверх и он возвращается на ту же точку: sin(2_90)=sin(180)=0.  
Еще это работает с градусом 45 - sin(2_45)=sin(90)=1, все это значит то, что это максимальное, что может выдать функция синуса.

Теперь мы знаем, как найти дистанцию. Сейчас нам нужно применить это к телепорту. Для телепорта нам нужна магнитуда и дистанция. Магнитуда определяется числом Elevation и числом Power, что дает нам как далеко телепортируется объект. А Bearing находим с помощью удаленных координат, которые мы должны знать.  
Вот отношение:  
x : x дистанция от телепорта (может быть отрицательным)  
y : y дистанция от телепорта (может быть отрицательным)  
B : bearing (может быть отрицательным)  
B = arctan(x/y)

```
                                     0град. ^ x                            
                                         |--------/                        
                                         | /                         
                                         | /                          
                                         | /                           
                                       y | /d                           
                                         | /                             
                                         | /                              
                                         |B/                               
                                         |/ 90град.
    <--------------------------------------------------------------------> 
    270град. l                               
                                         |                                 
                                         |                                 
                                         |                                 
                                         |                                 
                                         |                                 
                                         |                                 
                                         |                                 
                                         |                                 
                                         |                                 
                                         v 180град

```

Запомним квадрант, когда тангенс становится противоположным. С тех пор, как дистанция уже не может быть отрицательной, нужно узнать правильный Bearing. Если квадрант угла неправильный, то нужно просто прибавить или вычесть 180.  
Но у нас также есть и погрешность. Погрешность быстро вычислить нереально, нам для точной погрешности потребуется пара тестов и много вычислений.

Вот примерно так. Понять трудно, но полезно. У меня есть код для калькулятора бея, спер с гитхуба. Кому нужно, скину(есть еще на тг). Впрочем, если не трудно, оцените старания в плане поиска и писанины плюсом.
