|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Georgy Udov 2:5030/49.1 13 Mar 2003 16:34:57 To : Burlakov V. Subject : Сплайн -> Безье --------------------------------------------------------------------------------
Доброе время суток, Burlakov!
Ты писАл to All on Sun, 09 Mar 03 11:26:42 +0300:
BV> Ищу алгоритм преобразования сплайна в кривые Безье.
BV> А вообще это нужно для отрисовки сплайна.
BV> Если есть другие способы (не через Безье) с удовольствием выслушаю.
Hе совсем понятно, в чём вопрос. Сплайн - понятие растяжимое...
Вообще, для параметрических кривых существует алгоритм апельсина (так я его
окрестил).
function tesselate(double a, double b, doubleArray points)
{
// функция приближает ломаной отрезок параметрической кривой.
// a, b - начальный и конечный параметр
if(f(a) и f(b) не лежат на одной прямой с точностью примерно равной
характерному размеру пикселя)
{
tesselate(a, (a+b)/2, points);
points.push_back((a+b)/2);
tesselate((a+b)/2, b, points);
}
}
Алгоритм, очевидно, порой лажается, но можно его подимпрувить, например,
рассматривая принадлежность прямой не трёх точек, а, скажем, пяти...
Интересно было бы выслушать мнение общественности - какова эффективность
данного алгоритма по сравнению с "через Безье" для NURB-сплайнов.
Vale, Georgy Udov. E-mail: udovgeorgy#SPAMOFFchat.ru
--- ifmail v.2.15
* Origin: http://news.kaa.ru (2:5030/49.1)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/14947da596658.html, оценка из 5, голосов 10
|