Представление кривой NURBS при помощи Безье
От: GhostCoders Россия  
Дата: 29.11.13 06:17
Оценка:
Здравствуйте!

Про то, что кривые Безье являются частным случаем NURBS, но не наоборот, я в курсе.

Заранее извиняюсь что особо еще сам в этом направлении не копал, но.
Нужно как-то представить кривую NURBS (достаточно пока 2D случай) при помощи серий кривых Безье.

Например, может поможет увеличение числа контрольных точек или создание вырожденных контрольных точек
(это когда соседние контрольные точки совпадают)? Еще может такой-то финт ушами сделать,
но очень хочеться (и нужно) представлятьь NURBS в виде Безье. На крайний случай можно приближенно предствлять.
Всяко будет лучше чем полилиниями представлять NURBS (ломаными отрезками).

Спасибо!
Третий Рим должен пасть!
Re: Представление кривой NURBS при помощи Безье
От: GhostCoders Россия  
Дата: 29.11.13 07:32
Оценка: 6 (1)
P.S.: Алгоритм нужен для рисования векторной графики в PDF.

Вы будете смеяться — но сам формат PDF не может нарисовать точную окружность в принципе. Как и набирающий популярность формат SVG.
В формате PDF (и SVG) есть рисование сплайнами Безье.
И обычно окружности рисуют с его помощью.

Но! Для рисования математически точной окружности надо иметь рациональные сплайны Безье (полиномы с дробью),
а PDF (и SVG) поддерживает только рисование нерациональных Безье — поэтому всегда используется аппроксимация.

Столкнулись с этим и осознали когда начали работать над рисованием сплайнов NURBS в PDF.

http://en.wikipedia.org/wiki/B%C3%A9zier_spline

Вот тебе и векторная графика! А потом удивляемся почему спутники с орбит сходят
Третий Рим должен пасть!
Re[2]: Представление кривой NURBS при помощи Безье
От: GhostCoders Россия  
Дата: 29.11.13 07:37
Оценка:
Так что аппроксимирующий алгоритм вполне себе сойдет

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>Вот тебе и векторная графика! А потом удивляемся почему спутники с орбит сходят
Третий Рим должен пасть!
Re: Представление кривой NURBS при помощи Безье
От: nen777w  
Дата: 29.11.13 22:07
Оценка:
GC>Про то, что кривые Безье являются частным случаем NURBS, но не наоборот, я в курсе.
Вы случайно не MS Visio документы пытаетесь конвертировать?
Re[2]: Представление кривой NURBS при помощи Безье
От: Аноним  
Дата: 01.12.13 15:30
Оценка:
Здравствуйте, nen777w, Вы писали:

Нет.

GC>>Про то, что кривые Безье являются частным случаем NURBS, но не наоборот, я в курсе.

N>Вы случайно не MS Visio документы пытаетесь конвертировать?
Re: Представление кривой NURBS при помощи Безье
От: smeeld  
Дата: 01.12.13 15:58
Оценка:
Здравствуйте, GhostCoders, Вы писали:

Не сказали какими библами копаете, но на чистом opengl одномерные и двумерные
кривые рисуются с glMap[12]fd и glEvalCoord[12]fdv функциями просто и без NURBS.
Re: Представление кривой NURBS при помощи Безье
От: velkin Земля kisa.biz
Дата: 04.12.13 06:00
Оценка:
Здравствуйте, 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/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.