|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Дек 25, 2003 05:16:07 Собственно проблема вот в чем: нужен алгоритм построения сплайна как в AutoCAD, т.е. чтобы он проходил через заданные точки. Точки могут находиться в произвольном положении. Я откопал алгоритмы интерполяции, но все они имеют недостатки: 1. Многочлены Ньютона и Лагражна - ограниеченное количество точек, возрастающая сетка(значение каждого икса должно быть больше предыдущего) 2. Сплайн Катмулла-Рома - постоянная возрастающая сетка 3. Кубический сплайн - возрастающая сетка 4. В-сплайн, NURBS и т.д. - не проходит через заданные точки Есть ли у кого-нибудь алгоритмы, примеры или хотя бы полезные ссылки, где это можно найти? |
|
|
Дата: Дек 25, 2003 05:49:45 STFW. Тебе поможет кубический сплайн. Там нет возрастающей сетки. |
|
|
Дата: Дек 25, 2003 06:19:54 captain cobalt В том алгоритме, что я нашел, кубический сплайн работает только с возрастающей сеткой. Если у тебя есть другой, поделись, plz! |
|
|
Дата: Дек 25, 2003 13:03:08 Toxic А если представить точки (х,у) как функции времени (x(t), y(t)), а t - время, возрастающий параметр. |
|
|
Дата: Дек 25, 2003 17:17:28 · Поправил: heXone Сплайн Эрмита тебе тоже может помочь. В исходнике разберешься сам. calcdiff - вычисление производных Преимущества: 1)Расположение точек произвольное 2)Для изменения положения не нужно пересчитывать весь сплайн Недостатки: Разрыв в C2 660915078__lpoly.cpp |
|
|
Дата: Дек 25, 2003 17:19:18 В догонку. Есть классная книга по сплайнам и не только. Автор Голованов Н.Н "Геометрическое моделирование". Если где достанешь не пожалеешь |
|
|
Дата: Дек 25, 2003 20:18:38 heXone Спасибо, посмотрю. Так все-таки, в AutoCAD какой сплайн используется? |
|
|
Дата: Дек 28, 2003 19:26:50 интересно, чем кривая Безье заслужила такую популярность что даже окружности строятся из нескольких кривых и аппаратная поддержка ... |
|
|
Дата: Дек 29, 2003 01:41:44 Не знаю. Может, скорость? |
|
|
Дата: Дек 29, 2003 06:20:08 vdk Toxic Просто они очень простые в обращении: требуется всего два направляющих вектора чтобы задать кривую. И с помощью них можно забацать любую кривую. |
|
|
Дата: Дек 29, 2003 06:35:03 Sm_Andrei Это я читал в MSDN. У меня даже где-то был алгоритм построения по четырем точкам. А вот как с n точек? |
|
|
Дата: Дек 29, 2003 09:32:02 0-3 первая, 4-7 вторая и т.д. |
|
|
Дата: Дек 29, 2003 17:01:32 · Поправил: Toxic heXone Да, да... Это я тоже читал. Но кажется там вот так считается: кол-во_точек = (3 * количество_кривых) + 1 Но у нее изломы между кривыми |
|
|
Дата: Дек 29, 2003 18:12:51 скорость наверное. но тогда еще больше не понятно как можно построить растр кривой быстрее чем растр окружности |
|
|
Дата: Дек 29, 2003 21:41:22 Toxic Допустим, у тебя такие точки: A1,A2,A3,A4,A5,A6,A7 Первая кривая: A1,A2,A3,A4 Вторая кривая: A4,A5,A6,A7 Но у нее изломы между кривыми Если не хочешь чтобы были эти изломы, то у тебя точки A3,A4,A5 должны лежать на одной прямой. Вот примерчик одной кривой: управление - (1,2,3,4 изменение координат точек с помощью мыши),(5,6 детализация кривой),(7,8 точками, либо линиями рисовать). vdk окружность конечно лучше рисовать не кривой Безье. 1470596526__Bezier.cpp |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.098 |