05.06.2017, 13:12
Предисловие
Не стоит писать, что по GetVehicleVelocity можно получить абсолютно точную скорость передвижения транспорта в любой момент времени - это так. Другой вопрос, что по разнице 2-х GetVehiclePos можно на данный момент лишь дать грубую оценку скорости движения машины.
Данная тема посвящена возникшим вопросам по синхронизации и определению скоростей движения транспорта.
На опыте было показано, что пройденное расстояние (указывается умноженное в 100 раз) между двумя соседними по времени вызова OnPlayerUpdate может отличаться друг от друга в несколько раз. Подобная проблема проявляется и с разницей по времени между 2-мя OnPlayerUpdate, но менее выражена. Возможное решение кроется, например, в замере с периодом 1 секунду (девиация скорости действительно уменьшается), но такой способ замера скорости слишком грубый - нет возможности учесть ускорение за эту секунду либо интегрировать за 1 секунду пройденное расстояние по каждому OnPlayerUpdate, но тогда замеры получатся очень инерционными - машина может остановиться, а скорость будет ещё долго спадать (чем больше размер выборки - тем более инерционно, но более точно для постоянной скорости). Это всё рассчитывалось прямым методом (взял координаты, время, посчитал разницы и вычислил скорость).
Условия тестирований
Место/маршрут проведения: внешнее кольцо шоссе ЛВ.
Постоянная скорость: максимальная для выбранного транспорта, девиация скорости (по GetVehicleVelocity) <0.5%.
ФПС: 50.
IP: localhost
Тест №1: 2 круга на Infernus, размер выборки=6683 (разниц величин в OnPlayerUpdate)
Тест №2: 3 круга на Turismo, размер выборки=12580 (разниц величин в OnPlayerUpdate)
Таблица 1. Гистограммы измеренных величин
Таблица 2. Параметры распределений
Вопросы:
Не стоит писать, что по GetVehicleVelocity можно получить абсолютно точную скорость передвижения транспорта в любой момент времени - это так. Другой вопрос, что по разнице 2-х GetVehiclePos можно на данный момент лишь дать грубую оценку скорости движения машины.
Данная тема посвящена возникшим вопросам по синхронизации и определению скоростей движения транспорта.
На опыте было показано, что пройденное расстояние (указывается умноженное в 100 раз) между двумя соседними по времени вызова OnPlayerUpdate может отличаться друг от друга в несколько раз. Подобная проблема проявляется и с разницей по времени между 2-мя OnPlayerUpdate, но менее выражена. Возможное решение кроется, например, в замере с периодом 1 секунду (девиация скорости действительно уменьшается), но такой способ замера скорости слишком грубый - нет возможности учесть ускорение за эту секунду либо интегрировать за 1 секунду пройденное расстояние по каждому OnPlayerUpdate, но тогда замеры получатся очень инерционными - машина может остановиться, а скорость будет ещё долго спадать (чем больше размер выборки - тем более инерционно, но более точно для постоянной скорости). Это всё рассчитывалось прямым методом (взял координаты, время, посчитал разницы и вычислил скорость).
Условия тестирований
Место/маршрут проведения: внешнее кольцо шоссе ЛВ.
Постоянная скорость: максимальная для выбранного транспорта, девиация скорости (по GetVehicleVelocity) <0.5%.
ФПС: 50.
IP: localhost
Тест №1: 2 круга на Infernus, размер выборки=6683 (разниц величин в OnPlayerUpdate)
Тест №2: 3 круга на Turismo, размер выборки=12580 (разниц величин в OnPlayerUpdate)
Таблица 1. Гистограммы измеренных величин
Величина | Тест №1 | Тест №2 |
Расстояние | ||
Время | ||
Скорость |
Таблица 2. Параметры распределений
№теста | Величина | Математическое ожидание | Дисперсия |
1 | Дистанция | 173.230714 | 3850.134739 |
2 | Дистанция | 151.541970 | 2932.528609 |
1 | Время | 28.171630 | 96.652221 |
2 | Время | 28.239348 | 99.437501 |
1 | Скорость | 6.261968 | 1.772077 |
2 | Скорость | 5.514038 | 2.175881 |
- Каким законом наиболее точно аппроксимируются распределения по разнице времени и по скорости?
- Каким способом можно повысить точность вычисления скорости по пройденному расстоянию (или корректировать расстояние) так, чтобы за пару OnPlayerUpdate можно было рассчитать скорость с удовлетворительной скоростью (тупая интеграция 2х трапеций не вариант чёто)?