Способы определения кривой - PullRequest
3 голосов
/ 02 декабря 2011

Я пытаюсь придать фигуре в своем физическом механизме округлость / кривизну.

Мне известны различные методы математического определения кривых;такие как Безье-Крейвс, эллипсы и т. д. Однако я не уверен, какие методы будут наиболее подходящими для использования в моем физическом движке, поскольку необходимо учитывать скорость, выполнимость конструкции и гибкость каждого метода.Мне нужна система, в которой пользователь может легко формировать довольно сложные кривые, но при этом делать вычисления пересечений простыми и быстрыми.

Мой физический движок также является полностью непрерывным, что означает, что я должен быть в состоянии рассчитать время, в которое кривые будут сталкиваться с другими кривыми и линиями, на основе постоянной линейной / угловой скорости.1009 *

Какие существуют методы для математического определения 2D-кривой?

Каковы преимущества / недостатки каждого с точки зрения скорости,гибкость и простота конструкции?

Возможна ли такая техника для двигателя, где предсказуемость пересечения формы имеет решающее значение?

1 Ответ

3 голосов
/ 06 декабря 2011

Как говорит ваш тег, вы описываете кривые Безье . Он математически хорошо определен, так что вы сможете использовать его для обнаружения столкновений, хотя в зависимости от того, что вы делаете, это может немного усложнить написание и решение уравнений. Я не знаю много об этом, но что-то, что кажется стандартным способом приблизиться к сплайнам, является NURBS , и в Википедии, кажется, есть довольно статья на эту тему. Статья NURBS, вероятно, охватывает все это, но быстрый и грязный способ нарисовать гладкую кривую между группой точек - это использовать кубические сплайны , интерполируя кубический полином между каждыми двумя точками так, чтобы первые производные совпадать по краям. Таким образом, вы получаете кривую, которая проходит через все ваши точки и везде выглядит гладкой, без острых углов в начальных точках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...