Добро пожаловать, гость
:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте :: :: форум ::

Форум работает в режиме архива, только для чтения и поиска.
Архив 2004 Архив 2007 Архив 2013

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.01.2010, 13:38
Новичок

Отправить личное сообщение для Polza Посмотреть профиль Найти все сообщения от Polza
 
Регистрация: 09.01.2010
Адрес: Санкт-Петербург
Сообщений: 23

Кривый Безье 3-го порядка,поиск радиуса кривизны!
Добрый день!
Очень прошу вашей помощи. У меня через неделю защита,а мыслей по алгоритму никаких...Помогите,пожалуйс та, хотя бы источниками, где поискать можно!
Поставлена следующая задача: для кривой Безье 3-го порядка(то есть 4 вершины) разработать алгоритм, который будет находить координаты управляющих точек по заданным начальной и конечной точкам и радиусу кривизны.
Параметрическая формула уравнения кривой есть,для первой и второй производной тоже, формула радиуса кривизны есть...а что дальше не знаю?
Буду очень благодарна за какую-либо помощь!
  #2  
Старый 09.01.2010, 13:56
MBo MBo вне форума
Местный

Отправить личное сообщение для MBo Посмотреть профиль Найти все сообщения от MBo
 
Регистрация: 21.09.2006
Адрес: Новосибирск
Сообщений: 1,374

радиус кривизны во всех точках кривой разный, так что нужно уточнение
  #3  
Старый 09.01.2010, 14:07
Новичок

Отправить личное сообщение для Polza Посмотреть профиль Найти все сообщения от Polza
 
Регистрация: 09.01.2010
Адрес: Санкт-Петербург
Сообщений: 23

да,я понимаю...грубо говоря,нужно определить влияние положения контрольных точек и длин этих "ручек" на радиус кривизны...чтобы потом можно было написать алгоритм.который только по 2-м опорным точкам и заданному радиусу кривизны нарисует сам положение управляющих точек(хотя бы примерное)...но сейчас я столкнулась с проблемой как определить радиус кривизны в любой точке кривой Безье, ведь он зависит от параметра t в формуле,а t у нас меняется от 0 до 1...
  #4  
Старый 09.01.2010, 14:21
MBo MBo вне форума
Местный

Отправить личное сообщение для MBo Посмотреть профиль Найти все сообщения от MBo
 
Регистрация: 21.09.2006
Адрес: Новосибирск
Сообщений: 1,374

да, радиус кривизны зависит от параметра, но определить его при известных контрольных точках не проблема (хотя выражение и развесистое)

Для определения управляющих контрольных точек нужно найти 4 неизвестных (их координаты). Значит, нужно 4 уравнения.
  #5  
Старый 09.01.2010, 14:34
Новичок

Отправить личное сообщение для Polza Посмотреть профиль Найти все сообщения от Polza
 
Регистрация: 09.01.2010
Адрес: Санкт-Петербург
Сообщений: 23

То есть вы хотите сказать,что поставленная задача скорее всего не имеет решения?!

Подскажите, пожалуйста,а как тогда найти радиус кривизны при известных контрольных точках в конкретной точке кривой?
По формуле: r=|(1+f'(x)^2)^3/2|/f"(x) -?

Спасибо большое за вашу помощь!
  #6  
Старый 09.01.2010, 14:55
MBo MBo вне форума
Местный

Отправить личное сообщение для MBo Посмотреть профиль Найти все сообщения от MBo
 
Регистрация: 21.09.2006
Адрес: Новосибирск
Сообщений: 1,374

>То есть вы хотите сказать,что поставленная задача скорее всего не имеет решения?!
Если доопределить условие, то имеет. Скорее всего решение будет можно получить только численными методами.


>По формуле: r=|(1+f'(x)^2)^3/2|/f"(x) -?
нет, приведена формула для радиуса кривизны явно заданной функции y = f(x)
А нужна формула для параметрически заданной кривой, например в таком виде (SIC! - формула для кривизны, т.е. величины, обратной радиусу кривизны):
http://mathworld.wolfram.com/Curvature.html
формула 13
  #7  
Старый 09.01.2010, 17:50
Новичок

Отправить личное сообщение для Polza Посмотреть профиль Найти все сообщения от Polza
 
Регистрация: 09.01.2010
Адрес: Санкт-Петербург
Сообщений: 23

Да,есть такая формула: k=(x^'y^('')-y^'x^(''))/((x^('2)+y^('2))^(3/2)) и R=1/k, извините за глупость,но я не понимаю как применить эту формулу для конкретных цифр.

Знаем эти выражения для производных:
P'(t)=(3(P3-P0)+9(P1-P2))t^2+6(P0-2P1+P2)t+3(P1-P0)
P''(t)=(6(P3-P0)+18(P1-P2))t+6(P0-2P1+P2)
и что? просто подставляем в формулу?

А нет ли каких-нибудь окончательных или промежуточных вариантов решения численными методами?
  #8  
Старый 09.01.2010, 17:52
MBo MBo вне форума
Местный

Отправить личное сообщение для MBo Посмотреть профиль Найти все сообщения от MBo
 
Регистрация: 21.09.2006
Адрес: Новосибирск
Сообщений: 1,374

ну да, подставляем, не забыв про x и y - составляющие.
  #9  
Старый 09.01.2010, 18:01
Новичок

Отправить личное сообщение для Polza Посмотреть профиль Найти все сообщения от Polza
 
Регистрация: 09.01.2010
Адрес: Санкт-Петербург
Сообщений: 23

Еще раз извиняюсь за глупость, но, например, если есть координаты точек P0[1,1] P1[2,3] P2[4,3] P4[5,1] и эти формулы:
P'(t)=(3(P3-P0)+9(P1-P2))t^2+6(P0-2P1+P2)t+3(P1-P0)
P''(t)=(6(P3-P0)+18(P1-P2))t+6(P0-2P1+P2)
каждая точка имеет свои (x,y), которые будем подставлять

а что делать с t? как его найти?и если мы ищем радиус кривизны в конкретной точке, то куда подставлять ее координаты?...
совсем запуталась...помогите,пожа луйста.
  #10  
Старый 09.01.2010, 18:04
Новичок

Отправить личное сообщение для Polza Посмотреть профиль Найти все сообщения от Polza
 
Регистрация: 09.01.2010
Адрес: Санкт-Петербург
Сообщений: 23

Нашла полезную информацию в аналогичной теме: http://forum2007.algolist.ru/showfla...ber=9851&page=

а почему вот такая формула: Result := Abs(prod / (len * len * len)); ?!
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поверхности Безье Sergios Математические алгоритмы 0 18.06.2009 16:17
Рунге-Кутт 4-го порядка на фортране 77 Рунге Математические алгоритмы (другое) 1 11.03.2008 17:20
Кривые Безье Яков Обработка изображений, звук, графика 1 04.01.2008 11:31
Поиск кривой Безье второго порядка AlDev Вычислительная геометрия 8 15.08.2007 00:46
уравнение 5го порядка Svet Математические алгоритмы 5 08.06.2007 18:19