Про то, что кривые Безье являются частным случаем NURBS, но не наоборот, я в курсе.
Заранее извиняюсь что особо еще сам в этом направлении не копал, но.
Нужно как-то представить кривую NURBS (достаточно пока 2D случай) при помощи серий кривых Безье.
Например, может поможет увеличение числа контрольных точек или создание вырожденных контрольных точек
(это когда соседние контрольные точки совпадают)? Еще может такой-то финт ушами сделать,
но очень хочеться (и нужно) представлятьь NURBS в виде Безье. На крайний случай можно приближенно предствлять.
Всяко будет лучше чем полилиниями представлять NURBS (ломаными отрезками).
P.S.: Алгоритм нужен для рисования векторной графики в PDF.
Вы будете смеяться — но сам формат PDF не может нарисовать точную окружность в принципе. Как и набирающий популярность формат SVG.
В формате PDF (и SVG) есть рисование сплайнами Безье.
И обычно окружности рисуют с его помощью.
Но! Для рисования математически точной окружности надо иметь рациональные сплайны Безье (полиномы с дробью),
а PDF (и SVG) поддерживает только рисование нерациональных Безье — поэтому всегда используется аппроксимация.
Столкнулись с этим и осознали когда начали работать над рисованием сплайнов NURBS в PDF.
Так что аппроксимирующий алгоритм вполне себе сойдет
GC>P.S.: Алгоритм нужен для рисования векторной графики в PDF.
GC>Вы будете смеяться — но сам формат PDF не может нарисовать точную окружность в принципе. Как и набирающий популярность формат SVG. GC>В формате PDF (и SVG) есть рисование сплайнами Безье. GC>И обычно окружности рисуют с его помощью.
GC>Но! Для рисования математически точной окружности надо иметь рациональные сплайны Безье (полиномы с дробью), GC>а PDF (и SVG) поддерживает только рисование нерациональных Безье — поэтому всегда используется аппроксимация.
GC>Столкнулись с этим и осознали когда начали работать над рисованием сплайнов NURBS в PDF.
GC>http://en.wikipedia.org/wiki/B%C3%A9zier_spline
GC>Вот тебе и векторная графика! А потом удивляемся почему спутники с орбит сходят
GC>Про то, что кривые Безье являются частным случаем NURBS, но не наоборот, я в курсе.
Вы случайно не MS Visio документы пытаетесь конвертировать?
Re[2]: Представление кривой NURBS при помощи Безье
От:
Аноним
Дата:
01.12.13 15:30
Оценка:
Здравствуйте, nen777w, Вы писали:
Нет.
GC>>Про то, что кривые Безье являются частным случаем NURBS, но не наоборот, я в курсе. N>Вы случайно не MS Visio документы пытаетесь конвертировать?
Не сказали какими библами копаете, но на чистом opengl одномерные и двумерные
кривые рисуются с glMap[12]fd и glEvalCoord[12]fdv функциями просто и без NURBS.
Здравствуйте, GhostCoders, Вы писали:
GC>Здравствуйте!
GC>Про то, что кривые Безье являются частным случаем NURBS, но не наоборот, я в курсе.
GC>Заранее извиняюсь что особо еще сам в этом направлении не копал, но. GC>Нужно как-то представить кривую NURBS (достаточно пока 2D случай) при помощи серий кривых Безье.
GC>Например, может поможет увеличение числа контрольных точек или создание вырожденных контрольных точек GC>(это когда соседние контрольные точки совпадают)? Еще может такой-то финт ушами сделать, GC>но очень хочеться (и нужно) представлятьь NURBS в виде Безье. На крайний случай можно приближенно предствлять. GC>Всяко будет лучше чем полилиниями представлять NURBS (ломаными отрезками).
GC>Спасибо!
OpenCASCADE, кроссплатформенная библиотека, начать можно с её примеров находящихся в проекте MFC, хотя работает везде, я использовал Qt в Linux. http://www.opencascade.org/showroom/demos/