fika_fa Ответов: 1

расчет положения автомобиля на задней передаче


всем привет
Я хочу написать программу, которая имитирует автомобиль .
У меня проблема с расчетом положения на задней передаче

это мой код на передней передаче:
тета-это угол наклона колес автомобиля
-45<угол<45
первичное положение автомобиля находится в (800500) виде
if (gearState() == 1)//передняя передача
{
позиция.Х += (типа int32)(скорость() * математика.Грех(тета * математика.ПИ / 180));
позиция.Y -= (Int32)(speed() * Math.Cos(theta * Math.ПИ / 180));
}
этот код работает очень хорошо, но не работает на задней передаче.
когда тета=20 и автомобиль находится на задней передаче, автомобиль идет влево, а не вправо
у тебя есть какие-нибудь идеи ?
пожалуйста, помогите мне

1 Ответов

Рейтинг:
5

CPallini

Предполагая, что ваш автомобиль безразмерен (и speed() положительный), не должен

if (gearState() == -1)//reverse gear
{
   position.X += (Int32)(speed() * Math.Sin(theta * Math.PI / 180));
   position.Y <big>+=</big> (Int32)(speed() * Math.Cos(theta * Math.PI / 180));
}

сделать трюк?
:)


fika_fa

ваш код не работает !
моя машина-это картинка, которая движется по 2d-экрану

CPallini

Что вы имеете в виду, говоря "не работает"? Каково ожидаемое поведение? Каково наблюдаемое поведение? Удовлетворены ли предварительные условия (например, нерелевантные размеры автомобиля, положительная скорость)?