Страница 1 из 1

Сглаженная интерполяция вершин

СообщениеДобавлено: 21 авг 2013, 23:41
DDDENISSS
Даны 3 или более координат вершин. Между ними есть другие вершины, координаты которых нужно так вычислить, чтобы получилась окружность, а не просто прямая.
Вообщем как на рисунке.

Re: Сглаженная интерполяция вершин

СообщениеДобавлено: 22 авг 2013, 00:40
waruiyume
Для 3 вершин
http://docs.unity3d.com/Documentation/S ... Slerp.html
для >3
Кривые Безье (есть в Антерас), NURBS.

Re: Сглаженная интерполяция вершин

СообщениеДобавлено: 22 авг 2013, 01:00
DDDENISSS
waruiyume, Slerp как-то странно работает, если вершина с координатами (0,0,0) то интерполяция будет обычной линейной.
Кривые еще надо как-то вычислить. А NURBS это что?

Re: Сглаженная интерполяция вершин

СообщениеДобавлено: 22 авг 2013, 01:06
waruiyume

Re: Сглаженная интерполяция вершин

СообщениеДобавлено: 23 авг 2013, 23:52
DDDENISSS
Понял как работает Slerp. Он интерполирует не позицию, а вектор направления. Т.е. после обычной интерполяции там еще вычисляется длинна результирующего вектора. Длинна вычисляется наверно тоже интерполяцией. Странно, но этот метод нативный.

Нужно представить вершины как вектора и вращать их вокруг центра вращения. Осталось понять как вычислить этот центр.
Хотя за центр можно просто среднюю из всех вершин. Или лучше среднюю из каждых 3х вершин.

Re: Сглаженная интерполяция вершин

СообщениеДобавлено: 24 авг 2013, 00:03
seaman
вектор направления...еще вычисляется длинна результирующего вектора

Две не стыкующиеся фразы. Направление не имеет длины.
Но на самом деле там что-то похожее делается. И для этого не нужно что-то "понимать". Нужно просто прочитать мануал по ссылке. Там четко написано:
The direction of the returned vector is interpolated by the angle and its magnitude is interpolated between the magnitudes of from and to.

Отдельно интерполируется направление вектора, отдельно длина.

Re: Сглаженная интерполяция вершин

СообщениеДобавлено: 24 авг 2013, 16:32
DDDENISSS
Конечно направление не имеет длины, но тем не менее вектор имеет.
Поигрался я со Slerp, результат плохой. Как видите на картинке выходит не очень.

Re: Сглаженная интерполяция вершин

СообщениеДобавлено: 24 авг 2013, 16:48
nile
мб наведет на решение
http://blogs.unity3d.ru/2011/01/extending-unity-editor/
Правда это безье, такая кривая может не проходить через промежуточные вершины

Re: Сглаженная интерполяция вершин

СообщениеДобавлено: 24 авг 2013, 21:16
DDDENISSS
nile, для кривой надо вычислять inTangent и outTangent. Это для меня тоже вопрос. Я знаю только как вычислить так, чтобы получилась обычная ломаная прямая.
Возможно если предположить, что три точки лежат на сфере(овале) и вычислить центр этой сферы(овала), то может правильно работало бы.