2015-07-29 2 views
0

Я работаю над игрой 2-го класса, где у корабля есть ускорители. Я хочу определить, сколько сил потребуется каждому бустеру для перемещения моего корабля с максимальной силой в том направлении, в котором оно хочет идти., определяя величины таким образом, чтобы они генерировали максимальный результирующий вектор в определенном направлении?

На корабле может быть любое количество ускорителей, но, вероятно, будет небольшое число, например, 2-10. Вращения ускорителей известны, но я не могу определить их величины. Величины могут быть от 0 (мин) до 5 (макс.).

я попал в точку, где я сделал это уравнение:

directionToGo = ForceB1*B1Direction + ForceB2*B2Direction

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

Так как же я могу это сделать?

http://i.imgur.com/2PVlDmx.png

Если бы unanswer, потому что я не понял ответа.

+2

это звучит как Векторный расчет – WiiMaxx

+0

Вы хотите использовать эти ускорители для точной физики или это только для визуального эффекта? – agriffin

+0

Не уверен, что это wiimaxx, я посмотрел на все векторные слова calcs guide, и не мог видеть, что мне нужно с моей головы – shwick

ответ

1

Это звучит для меня как проблема с максимизацией ограничений. Вы хотите максимизировать силу вдоль определенного вектора, не применяя при этом ровно никакого усилия вдоль перпендикулярного вектора.

Если ваши подруливающие устройства не все направлены к центру масс, вам нужно другое ограничение, чтобы применить нулевой крутящий момент. Это гарантирует, что корабль не будет вращаться вследствие дисбаланса сил. Однако некоторые игры игнорируют это для простоты и полагают, что двигатели никогда не применяют крутящий момент.

Следует отметить, что вам нужна только оптимизация при изменении ориентации движителей: во время игрового процесса вы можете просто применить отношение тяг, чтобы добавить этот вектор силы. (Остерегайтесь, однако, перемещение «по диагонали» требует другого решения: если вы просто попытаетесь применить вперед + боком, вы получите> 100% мощность от маховика, что приведет к дисбалансу.)

Это один из способов об этом - может быть более простое решение, о котором я не знаю. Если вы можете еще больше ограничить свою проблему, более вероятно, что есть более простой способ.

+0

все еще читаю/понимаю ваш ответ только что вернулся из отпуска – shwick

+0

Это немного концептуальный ответ , извините, если это не поможет. Я надеялся, что кто-то придет и покажет, что я ошибаюсь, потому что меня будет интересовать более простой способ. – 31eee384

+0

Я снова читаю, я даже не думал о крутящем моменте. Я постараюсь решить его путь максимизации ограничения. Проблема заключается в том, что у меня есть редактор корабля, и люди могут разместить небольшое количество ускорителей любым способом. Любое вращение или положение, если оно прикреплено к корпусу корпуса. Следовательно, почему это будет сложно понять. – shwick

Смежные вопросы